8
python-daemon
がインストールされましたが、今ではシグナル処理を正しくしようとしています。私のコード:pythonDaemonはが/var/log/syslog
5秒ごとに書き込まれます実行されているテキストを:python-daemonでのシグナルハンドリング
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import signal, time, syslog
import daemon
def runDaemon():
context = daemon.DaemonContext()
context.signal_map = { signal.SIGTERM: programCleanup }
context.open()
with context:
doMainProgram()
def doMainProgram():
while True:
syslog.syslog("pythonDaemon is running")
time.sleep(5)
def programCleanup():
syslog.syslog("pythonDaemon STOP")
if __name__ == "__main__":
runDaemon()
私は期待通りのコードのすべての作品を開始。 しかし、kill -TERM *PID*
でデーモンを終了したい場合、デーモンは終了しますが、pythonDaemon STOPのテキストはsyslogにはありません。
私は間違っていますか?
NB:ここではfrom daemon import runner
で作業していません。これはエラーが発生します(古いバージョンのlockfile
が必要です)。信号処理の権利を得る唯一の可能性がある場合を除き、 。