在哪里放置套接字以便 PrivateTmp 可以为 true

在哪里放置套接字以便 PrivateTmp 可以为 true

我有一个 C++ 程序,它必须与其他服务(包括httpd)通信,并通过套接字进行通信/tmp

systemd随着和设置的出现PrivateTmp=true,像 httpd 这样的进程默认不再能看​​到我的程序的套接字。我不希望用户更改设置PrivateTmphttpd因为这是一个很好的保护。

但是,我应该将套接字文件(在服务启动/停止时创建创建/删除)放在哪里,以便可以与其他进程共享?

(或者是告诉用户关闭的唯一/正确的解决方案PrivateTmp??)

答案1

您可以将套接字放入/var/tmp带有粘性位的世界可写目录中,例如/tmp.

如果您的程序是由 systemd 启动的守护程序,您可以考虑在单元文件中使用,那么该目录将在单元启动时RuntimeDirectory=somedir创建,并在单元停止时删除。/run然后您可以在 中创建套接字/run/somedir/

相关内容