/var/run 目录创建即使服务被禁用

Zul*_*kis 6 linux systemd debian-jessie

通常,用于存储 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/
Run Code Online (Sandbox Code Playgroud)

哪个服务实际上在创建这些目录?

Big*_*gon 10

在 systemd 中,有一项名为的新功能tmpfiles.d(5)可用于在启动时在 .service 文件之外创建文件或目录。Openvpn 和 ejabberd 都在使用它,因此/var/run即使它们没有在启动时启动,仍然会创建目录。

tmpfiles配置文件存储在/usr/lib/tmpfiles.d/