首页 > 解决方案 > 如何更改 systemd 单元文件目录?

问题描述

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

标签: centossystemd

解决方案


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

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

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


推荐阅读