通常,存储 pid 或类似内容的目录由服务的启动脚本创建。(请参阅这个问题)
但是,我刚刚注意到,当我禁用服务后,重新启动后仍会重新创建这些目录。我尝试的所有服务都发生了这种情况。
root@sonorus:~# systemctl status openvpn
● openvpn.service - OpenVPN service
Loaded: loaded (/lib/systemd/system/openvpn.service; disabled)
Active: inactive (dead)
root@sonorus:~# systemctl status ejabberd
● ejabberd.service - A distributed, fault-tolerant Jabber/XMPP server
Loaded: loaded (/lib/systemd/system/ejabberd.service; disabled)
Active: inactive (dead)
Docs: https://www.process-one.net/en/ejabberd/docs/
哪项服务实际上正在创建这些目录?
答案1
使用 systemd,有一个名为 的新功能tmpfiles.d(5)
,可用于在启动时在 .service 文件之外创建文件或目录。Openvpn 和 ejabberd 都在使用此功能,因此/var/run
即使它们未在启动时启动,仍会创建 中的目录。
配置tmpfiles
文件存储在/usr/lib/tmpfiles.d/