8
我安裝了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運行文本被寫入/var/log/syslog
每5秒。 但是當我想用kill -TERM *PID*
終止守護進程時,守護進程終止,但syslog中缺少文本pythonDaemon STOP。
我在做什麼錯?
注意:我不是在from daemon import runner
這裏工作,因爲這給我一個錯誤(看起來像我需要一個老版本lockfile
),我不會解決這個問題,除非它是獲得信號處理權的唯一可能性。