Python 筆記 – 分享 Python Daemon 範例
如果需要實作一個 Python Daemon,你會怎麼做?
也許會找找看套件,例如 python-daemon,但如果還需要進一步細微調整,也許套件不是那麼好調整。
這裡推薦一個很棒的 Python Daemon 範例,請參考這篇 A simple unix/linux daemon in Python
Python 2 環境
這篇範例是 Python2 的,如果你是 Python 2 環境,按照他的範例把 class Daemon 複製一份,再按照他下面的使用範例 MyDaemon 那樣,基本上就可以用了。
這邊 Base Class init 的 argument 可指定 pidfile、stdin、stdout、stderr 的路徑,如果還需要擴充其他的 argument ,就可以自行撰寫。
跑起來以後,你就可以看到你指定的 pid file 內會儲存一個數字,那個就是 daemon 的 pid。
Python 3 調整
以下是必要修改項目
-
- print ” 改為 print(”) (注意有的是寫 print str(xxx),沒有引號)
- Exception, e 要改寫為 Exception as (至少 L29, L44, L109 這三行要)
- file() 改為 open() (L51, L52, L53, L61, L72, L93)
- 承上,file() 改為 open() 之後 第 53 行的參數需要修改, a+ 要改 ab+
- se = file(self.stderr, ‘a+’, 0) -> se = open(self.stderr, ‘ab+’, 0)
其他的話,建議可以 follow 一下下方的討論,看看其他人遇到的問題或者情境,是否有符合你的情境。
Leave a Reply