如何更改systemd单元文件目录



因为我想把所有的服务单元文件都放在自己的目录中,比如/opt/myservice/,所以我找到了使用$SYSTEMD_UNIT_PATH的方法https://unix.stackexchange.com/questions/224992/where-do-i-put-my-systemd-unit-file/367237#367237,但是,当我用shell命令SYSTEMD_UNIT_PATH=/opt/myservice/设置SYSTEMD_UNIT_PATH后,systemdctl在/opt/myservice/中找不到我的服务文件,有人知道它是如何工作的吗?thx

[root@localhost system]# ls /opt/myservice/
test.service
[root@localhost system]# export SYSTEMD_UNIT_PATH=/opt/myservice/
[root@localhost system]# echo $SYSTEMD_UNIT_PATH
/opt/myservice/
[root@localhost system]# systemctl daemon-reload
[root@localhost system]# systemctl status test.service
Unit test.service could not be found.

在文档中,环境变量必须设置为内核环境。

因此,如果systemd的pid为1,则环境必须设置为内核选项,任何其他选项都无效(例如/etc/profile,systemctl-set-environment(

如果您使用grub驱动的系统,您可以在/etc/default/grub中设置它,更改以GRUB_CMDLINE_LINUX=开头的行并附加SYSTEMD_UNIT_PATH=/absolute/path/to/your/services:。如果您只想附加服务路径,则最后一个冒号是必需的。

最新更新