我遇到了一个.service
包含以下内容:
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
原始.service
文件可以在这里找到。
我在 Ubuntu 16.04LTS 上。
操作系统:Ubuntu 20.04.3
$ \cat /home/nikhil/.config/systemd/user/Festival.service
[Unit]
Description=Festival Service
[Service]
ExecStart=/usr/bin/festival --server
Restart=on-failure
RestartSec=10
SyslogIdentifier=FestivalService
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我这样做了systemctl --user enable Festival.service
,重新启动了我的系统。但节日服务器没有启动。只有当我手动执行时systemctl --user start Festival.service
,它才会启动。
您能否告诉我,为什么用户服务不能与 一起使用multi-user.target
,而它应该在每次启动时都起作用?
据我从systemd的文档中可以看出,Wants=
并WantedBy=
执行相同的功能,除了前者放在依赖单元文件中,反之亦然。(那个,并WantedBy=
创建unit.type.wants
目录并用符号链接填充它。)
该
WantedBy=
指令...允许您以与Wants=
该[Unit]
部分中的指令类似的方式指定依赖关系。不同之处在于该指令包含在辅助单元中,允许列出的主要单元保持相对清洁。
它真的只是保持单元文件“干净”吗?使用这两个指令的最佳实践是什么?也就是说,如果服务阿尔法“想”的服务测试版,我什么时候应该用Wants=beta.service
在alpha.service
和什么时候应该更喜欢WantedBy=alpha.service
在beta.service
?