11

インストール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.

4

1 に答える 1