通常,存储 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/
哪个服务实际上正在创建这些目录?
使用 systemd,有一个名为的新功能
tmpfiles.d(5)
可用于在启动时在 .service 文件之外创建文件或目录。Openvpn 和 ejabberd 都在使用它,这就是为什么/var/run
即使它们没有在引导时启动,仍然会创建目录的原因。配置
tmpfiles
文件存放在/usr/lib/tmpfiles.d/