私はDaemon::Simple
いくつかのスクリプトをすばやくデーモン化し、それらを起動/停止できるようにするために使用しています。ただし、これらのスクリプトの一部は python で記述されているため、通常は python スクリプトと呼びDaemon::Simple::Init()
ますexec()
。
Daemon::Simple::Init()
しかし、 と が閉じSTDOUT
ていることがわかりました。その結果、とSTDERR
への書き込み時に Python スクリプトが壊れる (単に終了する) ようです。execの前にそれらを再度開いてファイルにリダイレクトしても役に立ちません。STDOUT
STDERR
STDOUT
STDERR
私が見つけたのは、次のソースを変更することですDaemon::Simple
。
close(STDOUT);
close(STDERR);
に:
open STDOUT, "/dev/null"
open STDERR, "/dev/null"
以前のように呼び出した後、再度開いSTDOUT
てSTDERR
実際のファイルにリダイレクトするとDaemon::Simple:Init()
、今回は機能します。閉じSTDOUT
てSTDERR
再度開くと何らかの形で投稿exec()
が壊れているようですが、それらを開いて/dev/null
再度開くと正常に機能します。
とにかく、どちらが生き残るかを変更せずにSTDOUT
、再開または開いたままにすることができますか?STDERR
Daemon::Simple
exec()