Pythonでデーモンプロセスを作成するために私が見つけたすべてのレシピには、(Unixの場合)2回フォークしてから、開いているすべてのファイル記述子を閉じることが含まれます。(例については、 http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/を参照してください)。
これはすべて簡単ですが、問題があるようです。私がセットアップしている本番マシンでは、デーモンが異常終了しています-開いているすべてのファイル記述子が閉じられたため、サイレントに。私は現在問題をデバッグするのに苦労していて、これらのエラーをキャッチしてログに記録する適切な方法は何であるか疑問に思っています。
デーモン化後も機能し続けるようにロギングを設定する正しい方法は何ですか?logging.basicConfig()
デーモン化した後、もう一度電話をかけますか?キャプチャする正しい方法は何stdout
ですかstderr
?すべてのファイルが閉じられる理由の詳細がわかりません。理想的には、私のメインコードはただ呼び出すことができdaemon_start(pid_file)
、ロギングは引き続き機能します。