python-daemonライブラリを使用して python にデーモンを実装しました。
ただし、デーモンは定期的に死ぬ (または強制終了される) ように見えますが、その周期は 1 日から数か月までさまざまです。
例外をキャッチしてファイルに記録し、メールで送信することで、デーモンが停止した理由を見つけようとしました。私のスクリプトのデーモン部分は、おおよそ次のようになります。
import daemon
context = daemon.DaemonContext(
working_directory='/foo/',
pidfile=lockfile.FileLock('/foo/foo.pid')
)
try:
with context:
do_stuff()
except Exception, e:
log_exception_to_file(e)
mail_exeption_to_me(e)
かなりの数の例外がログに記録されてメールで送られてきたため、コードが一般的に機能することはわかっています。
ほとんどの場合、何も得られず、ウォッチドッグ スクリプトによって、デーモンが実行されていないことが警告されます。デーモンが死んでいるか殺されている理由を見つけたり追跡したりできる方法はありますか?