簡體   English   中英

以非root用戶身份運行系統守護程序PID文件的首選位置

[英]Preferred location for PID file of system daemon run as non-root user

我的問題與此問題有關 ,但是有問題的進程是從cron運行的,並且由非root用戶運行。 因此,許多用戶實際上並沒有家庭目錄(或他們的家庭目錄指向/usr/share/package_name ,這不是PID文件的理想位置)。

/var/run存儲是有問題的,因為該目錄只能由root用戶寫入。

我可以使用/tmp ,但是我出於安全原因不知道這是否理想。

我可以安排一個啟動腳本在/var/run創建一個目錄,該目錄由適當的用戶擁有(我無法在軟件包安裝時執行此操作,因為/var通常作為tmpfs掛載,因此不是持久性的)。

這里的最佳做法是什么?

很好的問題:),我現在完全一樣。 我不確定這是否是正確的答案,但希望對您有所幫助,也希望您能提供反饋。

我四處搜尋,發現將每用戶守護程序注冊為dbus服務是一個很好的解決方案。 dbus可以確保該服務僅運行一次。 不需要pidfile。

另一個解決方案(目前是我的解決方案)是在以下目錄中創建PID文件:

$HOME/.yourdaemon/pid

在您發表評論后,我意識到您無法寫信回家。 我建議研究一下dbus

更新資料

我有個主意。 如果您正在使用/ tmp,但是正在尋找一個守護進程用戶擁有的名為yourdaemon.pid.UNIQUE_KEY的pidfile,該怎么辦? 這應該工作正常。

UNIQUE_KEY應該是隨機生成的(最好使用tempnam,因為它是競爭條件證明)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM