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 調整

以下是必要修改項目

    1. print ” 改為 print(”) (注意有的是寫 print str(xxx),沒有引號)
    2. Exception, e 要改寫為 Exception as (至少 L29, L44, L109 這三行要)
    3. file() 改為 open() (L51, L52, L53, L61, L72, L93)
    4. 承上,file() 改為 open() 之後 第 53 行的參數需要修改, a+ 要改 ab+
      • se = file(self.stderr, ‘a+’, 0) -> se = open(self.stderr, ‘ab+’, 0)

其他的話,建議可以 follow 一下下方的討論,看看其他人遇到的問題或者情境,是否有符合你的情境。

 

 

 

 

 

You Might Also Like

Leave a Reply

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料