是否存在用於存儲以用戶身份運行的守護進程的pid文件的首選位置?/var/run是標準位置,但這是用於用戶守護進程的,因此它不具有寫權限。據推測,我的守護進程將從.profile或.bashrc或其他東西開始。只是將它保存到/ tmp一個壞主意?以用戶身份存儲守護進程的pid文件
回答
如果它正在爲用戶運行,那麼讓我們來看看存在哪種用戶特定的存儲。
嗯。
就是這樣!主目錄。我知道它最終會來到我身上:-)
對不起,輕刺拳。說真的,我只是將PID存入$HOME/.daemon.pid
或~/.daemon.pid
(當然,你如何命名該文件取決於你)。
這當然,假設您將只有一個守護進程爲用戶運行。如果沒有,你需要有點棘手。
並希望減少你的擔心,用戶會在不經意間自己的主目錄中刪除未知文件,這就是爲什麼你把它「隱藏」通過與.
字符開始吧。
大多數沒有經驗的用戶甚至不應該使用請參閱這些和有經驗的用戶應該知道的比他們更好。
那麼用戶看到的是hom目錄,我認爲他們會更有可能刪除該文件,如果他們看到它不知道它是什麼 – Falmarri 2010-10-18 07:40:15
@Falmarri:那有什麼危險?如果您真的需要再次使用PID,您可以隨時查看進程表。 PID文件只是一個方便。 – 2010-10-18 07:42:48
這就是爲什麼你把'.'放在它前面。不知道自己在做什麼的用戶可能永遠不會知道它存在。如果他們經常看到隱藏文件,只要在刪除'.bashrc'時出錯就會教他們錯誤的方法:-)如果你是_really_偏執狂,把PID放入'〜/ .dont_EVER_delete_me_or_you_WILL_be_sorry/.daemon.pid' 。 – paxdiablo 2010-10-18 07:43:17
我建議你去用戶的主目錄內的子目錄。
~/.programname/.pid
如果有任何其他用戶的配置數據,可以存儲在這裏也一樣,爲了避免弄亂主目錄。
XDG Basedir specification定義你應該在哪裏存儲這些。
變量$XDG_RUNTIME_DIR
定義它的位置,雖然它沒有默認值。
最常見的回退(如果變量未設置)爲/tmp/service-$USER.id
。
這有助於保持整潔的宿主目錄,同時保持在
- 1. 如何以特定用戶身份運行Ruby守護進程?
- 2. Python:使用PID文件進行守護進程
- 3. 查找守護進程的PID?
- 4. 沒有PID文件競爭條件的Linux守護進程
- 5. 存儲文件由守護進程下載
- 6. Git守護進程和Windows身份驗證
- 7. 將Android殺死我的守護進程是以root身份運行嗎?
- 8. 在守護進程線程中創建的進程的主線程是守護進程本身嗎?
- 9. 創建存儲用戶PID的.pid文件
- 10. python守護進程,不寫入文件
- 11. 如何捕獲從init.d運行的Linux守護進程的pid
- 12. 以用戶身份運行的守護程序無人需要從桌面複製文件
- 13. 如何指定守護進程的日誌和pid目錄?
- 14. Bash:獲得守護進程屏幕會話的PID
- 15. 如何在init腳本中獲得perl守護進程的PID?
- 16. Linux守護進程
- 17. iphone守護進程
- 18. Python守護進程
- 19. 如何確保HDFS和YARN守護進程以不同的Unix用戶身份運行?
- 20. 守護進程的內存分析
- 21. 使用python,守護進程
- 22. 用Clojure/JVM守護進程
- 23. 如何從父perl守護進程獲取pid?
- 24. 使用守護進程發送郵件
- 25. Linux守護進程停止啓動 - 停止守護進程
- 26. 定時器()作爲守護進程與非守護進程
- 27. 無法以根用戶身份運行守護進程::控制perl腳本。 @INC不正確(perlbrew)
- 28. MacOsX:如果守護程序以根用戶身份運行,從守護程序啓動使用NSWorkspace的應用程序不起作用
- 29. Windows的Docker守護進程
- 30. FreeBSD的守護進程庫
所有運行時的數據保存到/ tmp也是白搭,因爲任何命名約定你會發明(例如'/ tmp目錄// .pid')可能已經被另一個應用程序使用,你將無法創建該文件。在'/ tmp'下使用一個隨機的dirname會破壞pid文件的想法 - 能夠在不掃描進程列表的情況下快速獲取pid。 –
2012-08-15 16:26:21