2012-08-14 2 views
1

필자는 파이썬에 비해서 새로운 편이며 지금까지 프로그래밍의 표면을 배제했기 때문에 데몬에 대해 혼란 스럽습니다. 나는 일반적으로 그들이하는 일을 알고 있지만, 파이썬으로 구현하는 가장 좋은 방법은 무엇인지 모르겠습니다. 파이썬에서 데몬을 만드는 법을 보여주는 this 링크를 찾았습니다. 그러나, 나는 이것이 궁금한가요?다른 데몬 구현

#!/usr/bin/env python3.2 
import threading 

class Update(threading.Thread): 
    def __init__(self): 
     threading.Thread.__init__(self) 

    def run(self): 
     pass  #something you want to run in the background 

continous = Update 
continous.daemon = True 
continous.start() 

도 효과가 있습니까?

+1

질문에 언급 된 링크를 포함하십시오. – stderr

+0

아, 죄송합니다. 나는 지금 그것을 추가했습니다 – Lobabob

답변

0

threading documentation : "살아있는 비 데몬 스레드가없는 경우 전체 Python 프로그램이 종료됩니다". 데몬 스레드는 응용 프로그램이 끝나면 종료됩니다.

파이썬에서 시스템 데몬을 구현하려면 os.fork을 사용해야합니다. example of simple daemon을 살펴보십시오.

+0

인용 한 것은 제가 제 질문을 게시했을 때 이미 염두에 두었던 것입니다. 필자가 제공 한 코드 샘플은 메인 스레드가 종료 된 후 백그라운드에서 실행될 데몬 스레드를 만듭니다. – Lobabob

+0

전체 주 프로세스가 종료되고 새로운 (데몬) 프로세스가 생성되지 않았기 때문에 스레드가 주 스레드 종료 후에 실행되는 것에 대해 약간 잘못되었습니다. 그렇다면 로그 파일이 거의 비어있는 동안 코드 (http://pastebin.com/646t71Ba)가 초당 무한정 /tmp/log.txt에 메시지를 출력합니다. – Vladimir