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
이 필요함) 오류가 발생하고 신호 처리 권한을 얻는 유일한 가능성이 아니라면이 문제를 해결할 수 없습니다. .