如何更改systemd单位文件目录?

时间:2018-10-30 03:58:58

标签: centos systemd

由于我想将所有服务单元文件都放在自己的目录中,例如/opt/myservice/,所以我找到了在问题https://unix.stackexchange.com/questions/224992/where-do-i-put-my-systemd-unit-file/367237#367237中使用$SYSTEMD_UNIT_PATH的方式,但是systemdctl找不到我我使用外壳程序命令/opt/myservice/设置SYSTEMD_UNIT_PATH后在SYSTEMD_UNIT_PATH=/opt/myservice/中创建了服务文件,有人知道它如何工作吗?

[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.

1 个答案:

答案 0 :(得分:0)

从文档来看,环境变量必须设置为内核环境。

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

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