2010-10-18 31 views
11

是否存在用於存儲以用戶身份運行的守護進程的pid文件的首選位置?/var/run是標準位置,但這是用於用戶守護進程的,因此它不具有寫權限。據推測,我的守護進程將從.profile或.bashrc或其他東西開始。只是將它保存到/ tmp一個壞主意?以用戶身份存儲守護進程的pid文件

+2

所有運行時的數據保存到/ tmp也是白搭,因爲任何命名約定你會發明(例如'/ tmp目錄/ / .pid')可能已經被另一個應用程序使用,你將無法創建該文件。在'/ tmp'下使用一個隨機的dirname會破壞pid文件的想法 - 能夠在不掃描進程列表的情況下快速獲取pid。 – 2012-08-15 16:26:21

回答

8

如果它正在爲用戶運行,那麼讓我們來看看存在哪種用戶特定的存儲。

嗯。

就是這樣!主目錄。我知道它最終會來到我身上:-)


對不起,輕刺拳。說真的,我只是將PID存入$HOME/.daemon.pid~/.daemon.pid(當然,你如何命名該文件取決於你)。

這當然,假設您將只有一個守護進程爲用戶運行。如果沒有,你需要有點棘手。


並希望減少你的擔心,用戶會在不經意間自己的主目錄中刪除未知文件,這就是爲什麼你把它「隱藏」通過與.字符開始吧。

大多數沒有經驗的用戶甚至不應該使用請參閱這些和有經驗的用戶應該知道的比他們更好。

+0

那麼用戶看到的是hom目錄,我認爲他們會更有可能刪除該文件,如果他們看到它不知道它是什麼 – Falmarri 2010-10-18 07:40:15

+1

@Falmarri:那有什麼危險?如果您真的需要再次使用PID,您可以隨時查看進程表。 PID文件只是一個方便。 – 2010-10-18 07:42:48

+4

這就是爲什麼你把'.'放在它前面。不知道自己在做什麼的用戶可能永遠不會知道它存在。如果他們經常看到隱藏文件,只要在刪除'.bashrc'時出錯就會教他們錯誤的方法:-)如果你是_really_偏執狂,把PID放入'〜/ .dont_EVER_delete_me_or_you_WILL_be_sorry/.daemon.pid' 。 – paxdiablo 2010-10-18 07:43:17

0

我建議你去用戶的主目錄內的子目錄。

~/.programname/.pid 

如果有任何其他用戶的配置數據,可以存儲在這裏也一樣,爲了避免弄亂主目錄。

8

XDG Basedir specification定義你應該在哪裏存儲這些。
變量$XDG_RUNTIME_DIR定義它的位置,雖然它沒有默認值。
最常見的回退(如果變量未設置)爲/tmp/service-$USER.id

這有助於保持整潔的宿主目錄,同時保持在

相關問題