CGIページから生成され、単独で実行されるデーモンプロセスになるperlスクリプトがあります。使用しているモジュールから呼び出されたダイがある場合、スクリプトは eval ブロックで処理されていても呼び出されます。ただし、コマンド プロンプトからスクリプトを実行すると、すべて問題なくエラーが処理されます。
注:コマンドラインからも、スクリプトはデーモンになります
CGIページから生成され、単独で実行されるデーモンプロセスになるperlスクリプトがあります。使用しているモジュールから呼び出されたダイがある場合、スクリプトは eval ブロックで処理されていても呼び出されます。ただし、コマンド プロンプトからスクリプトを実行すると、すべて問題なくエラーが処理されます。
注:コマンドラインからも、スクリプトはデーモンになります
申し訳ありませんが、ここで本当の答えはありませんが、いくつか調べるべきことがあります...
mod_perl からジョブを生成する場合は、通常よりも複雑であることを思い出してください。ファイル記述子を閉じる必要があります。httpd/mod_perl は 0、1、および 2 以上のファイルを開いています。stdout
最終的に、0 から 255 までを閉じたループを作成しました。また、メモリからは 1 ではないと思います。
しかし、なぜ eval が機能しないのかわかりません。を使用してスクリプトを生成していますexec
か? その場合、シェルから実行するのと同じはずです。「殺された」と言うとき、ダイがスクリプトを終了させていることを意味しますか(evalがなかったかのように)? または、他の何か。それ以外の場合は、mod_perl が実行されている httpd プロセスからシグナル ハンドラーを継承している可能性がありますか?