インストール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()
コードを開始すると、すべてが期待どおりに機能します。テキストpythonDaemon is running/var/log/syslog
が5 秒ごとに書き込まれます。しかし、デーモンでデーモンを終了したい場合kill -TERM *PID*
、デーモンは終了しますが、テキストpythonDaemon STOPが syslog にありません。
私は何を間違っていますか?
注意: 私はfrom daemon import runner
ここで作業していません。エラーが発生するため ( lockfile
.