close
最近研究了一下如何寫 Linux 的 daemon (相當於 windows 的 service)
首先找到了這篇文章
這篇文章寫的相當的清楚
基本上只要依照以下的原則就可以寫出基本的骨架
- 呼叫 Fork() 並且讓父程序結束
- 改變 umask 為0
- 建立log
- 呼叫 setsid() 建立一個新的作業階段
- 改變目前的工作路徑到一個安全的地方,也就是說永遠都會存在的路徑。例如根目錄就是一個很好的選擇
- 關閉沒有必要的檔案描述詞
- 你這隻 daemon 所要做的事
另外要寫 daemon 有一點一定要注意
那就是盡可能使用防禦式的方式來寫 code
因為 daemo 不像一般的程式
它如果當掉了是很難 debug
所以錯誤檢查要做好,並且一定要 log 起來。
如果你會寫 python
那麼也許你會喜歡此篇文章的程式碼
如果你仔細看一下他的程式碼
你會發現他的 Daemon 這個 class 也是依照上面的原則寫出來的。
有了一個 daemon 骨架之後
接下來就看你有什麼需求了
譬如,如果想監控某個目錄下,檔案的新增,刪減或修改
可以搭配 inotify,python 也有相對應的模組 pyinotify
並將所監控的訊息紀錄在一個檔案。
全站熱搜
留言列表