[Tech] mod_perlでexitしたら、exit: (120000) exit was..

超メモ。
mod_perl内でexitすると、dieするのでevalでトラップされる。


環境

httpd-2.2.3-31.el5
mod_perl-2.0.4-6.el5


コード(a.cgi)

#!/usr/bin/perl

use ModPerl::Util;

eval {
ModPerl::Util::exit;
};
print "$@";



$@の中身。

ModPerl::Util::exit: (120000) exit was called at /hogehoge/cgi-bin/a.cgi line 9


ModPerl::Util::exitではなく、exitでも同じ。まあ、exitは、ModPerl::Util::exitに置き換えられてるから当然なのだが。
CORE::exitを使うとその場でプロセスが落ちるので、print文が効かない。

 参考
  http://perl.apache.org/docs/2.0/api/ModPerl/Util.html#C_exit_
  →mod_perl 2.0から変更になったと書いてあるが、ほんまやろか。
    http://search.cpan.org/~gozer/mod_perl-2.0.1/Changes
   をみていると、そういう話ではなくて、1.99系んときにごりごりいじってるが、まあこの辺は前からの動作っぽいな。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック