我有一个守护进程,它的 PID 文件需要它自己的目录,/var/run
并授予该守护进程的用户写入权限。
我发现我可以用这些命令创建这个目录:
# mkdir /var/run/mydaemon
然后我可以将其所有权更改为我希望运行该进程的用户/组:
# chown myuser:myuser /var/run/mydaemon
但是每当我重新启动时,这个目录就会消失!每次机器启动时如何创建这个目录?
我有一个守护进程,它的 PID 文件需要它自己的目录,/var/run
并授予该守护进程的用户写入权限。
我发现我可以用这些命令创建这个目录:
# mkdir /var/run/mydaemon
然后我可以将其所有权更改为我希望运行该进程的用户/组:
# chown myuser:myuser /var/run/mydaemon
但是每当我重新启动时,这个目录就会消失!每次机器启动时如何创建这个目录?
有两种方法可以让 systemd 在
/var/run
/下创建目录/run
。通常最简单的方法是
RuntimeDirectory
在服务的单元文件中声明 a。例子:这将为
/var/run/foo
系统单元创建。(注意:不要提供完整路径,只提供 下的路径/var/run
)对于完整文档,请参阅systemd.exec 文档中的相应条目。对于需要更复杂或不同配置或生命周期保证的运行时目录,请使用
tmpfiles.d
并让您的包删除文件/usr/lib/tmpfiles.d/mydaemon.conf
:在此处查看完整的 tmpfiles.d 文档。
我创建了一个可以在启动时创建目录的服务:
vim /etc/systemd/system/mydaemon-helper.service
的内容
/etc/systemd/system/mydaemon-helper.service
:然后我启动了这个服务:
systemctl start mydaemon-helper
systemctl status mydaemon-helper
输出:
最后我告诉系统在启动时加载它:
systemctl enable mydaemon-helper