Proc::Daemon使った時のデバッグが大変だ
スポンサードリンク
とある事情でLinuxでDaemonを作っていますが、相変わらずPerlで作っておりまして、
Perl Tips | Perl で、デーモン (Daemon) のプログラムを書くには? [perltips.twinkle.cc]
のまま使ってやっていまして、TTYにつないだまま(Daemon化しない)だと、フツーにいつまでも動いているのですけれども、Daemon化すると、数分でプロセスがいつの間にか消えているという現象。
だから今はscreenで開いたコンソール1つ使いDaemon化させないで運用。あほすぎる
Daemon化した時の効率のよいデバッグの仕方が見いだせないなあ。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3104
proc::daemon は stdout/stderr を /dev/null に捨ててしまいますが、これをログファイルに吐くようにすれば、デバッグも容易かとおもいます。
otsuneさんもブコメでかいてますけども、daemontools つかって daemon 自前でつくらないってのが許されるのであれば、それが一番楽かとおもいます。
トオルスガルモノノさん:
アドバイスをいただきまして、
にて解決しました。あと、止まっていた理由が、daemon化した時にカレントディレクトリが/になるためでした。Daemon.pmのソース読むと、もろにカレントディレクトリ変えたり、STDOUT/STDERRを書き換えているところがありました。ソース見るべきでしたね。
daemontools利用のほうは、別の機会にチャレンジしてみたいと思います。