Proc::Daemon使った時のデバッグが大変だ
とある事情でLinuxでDaemonを作っていますが、相変わらずPerlで作っておりまして、
Perl Tips | Perl で、デーモン (Daemon) のプログラムを書くには? [perltips.twinkle.cc]
のまま使ってやっていまして、TTYにつないだまま(Daemon化しない)だと、フツーにいつまでも動いているのですけれども、Daemon化すると、数分でプロセスがいつの間にか消えているという現象。
だから今はscreenで開いたコンソール1つ使いDaemon化させないで運用。あほすぎる
Daemon化した時の効率のよいデバッグの仕方が見いだせないなあ。
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/19018/47322980
この記事へのトラックバック一覧です: Proc::Daemon使った時のデバッグが大変だ:
コメント
proc::daemon は stdout/stderr を /dev/null に捨ててしまいますが、これをログファイルに吐くようにすれば、デバッグも容易かとおもいます。
otsuneさんもブコメでかいてますけども、daemontools つかって daemon 自前でつくらないってのが許されるのであれば、それが一番楽かとおもいます。
投稿者: トオルスガルモノノ (2010/01/20 11:15:42)
トオルスガルモノノさん:
アドバイスをいただきまして、
open STDERR, '>', '/tmp/stderr.log';
open STDOUT, '>', '/tmp/stdout.log';
にて解決しました。あと、止まっていた理由が、daemon化した時にカレントディレクトリが/になるためでした。Daemon.pmのソース読むと、もろにカレントディレクトリ変えたり、STDOUT/STDERRを書き換えているところがありました。ソース見るべきでしたね。
daemontools利用のほうは、別の機会にチャレンジしてみたいと思います。
投稿者: CL (2010/01/25 2:27:48)



























































