Systemd

在哪裡放置套接字以便 PrivateTmp 可以為真

  • March 5, 2016

我有一個必須與其他服務(包括httpd)通信的 C++ 程序,並且通過/tmp

隨著systemdPrivateTmp=true設置的出現,像 httpd 這樣的程序預設不能再看到我的程序的套接字。我不希望使用者更改PrivateTmp設置,httpd因為它是一個很好的保護。

但是,我應該將我的套接字文件(它在我的服務的啟動/停止時創建/刪除)放在哪裡,以便可以與其他程序共享?

(或者是告訴使用者關閉的唯一/正確的解決方案PrivateTmp??)

您可以將您的套接字放入/var/tmp帶有粘性位的世界可寫目錄中,例如/tmp.

如果您的程序是由 systemd 啟動的守護程序,您可以考慮RuntimeDirectory=somedir在單元文件中使用,那麼該目錄將在/run您的單元啟動時創建,並在停止時刪除。然後,您可以在/run/somedir/.

引用自:https://unix.stackexchange.com/questions/267847