while True: try: funny_code(); sleep(10); except:pass;
루프에서이 코드
def daemonise():
from os import fork, setsid, umask, dup2
from sys import stdin, stdout, stderr
if fork(): exit(0)
umask(0)
setsid()
if fork(): exit(0)
stdout.flush()
stderr.flush()
si = file('/dev/null', 'r')
so = file('daemon-%s.out'%os.getpid(), 'a+')
se = file('daemon-%s.err'%os.getpid(), 'a+')
dup2(si.fileno(), stdin.fileno())
dup2(so.fileno(), stdout.fileno())
dup2(se.fileno(), stderr.fileno())
print 'this file has the output from daemon%s'%os.getpid()
print >> stderr, 'this file has the errors from daemon%s'%os.getpid()
스크립트가를 사용하여 daemonise 파이썬 스크립트를 가지고 죽는다. 몇 시간 동안 잘 돌아가고 예기치 않게 죽습니다. 그런 악마를 디버깅하는 방법, 오류 대몬.
MONIT 같은 프로세스를 시작하지 않고 [편집]
, 그들은 아래로 갈 때 내 다른 데몬을보고 다시 시작할 수 있습니다 파이썬에서 감시를 작성하는 방법이 있나요? (워치 독을 지켜 보는 사람)
모니터링을 위해 monit과 같은 것을 추가 할 것입니다. 그러나 디버깅을 위해 너무 자주 실패하는 이유는 무엇입니까? daemontools ... 잘 djb에 의해 작성된, 그래서 나는 그것을 요구하는 구성 조심 오전. :) – agiliq
@usaretech : 이번에는 안된다. "run"이라는 스크립트로 폴더를 만들면된다. 그것은 서비스입니다. – nosklo