Systemd 服务未启动(WantedBy=multi-user.target)

Systemd 服务未启动(WantedBy=multi-user.target)

操作系统: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

描述

我这样做了systemctl --user enable Festival.service,重新启动了我的系统。但节日服务器没有启动。只有当我手动执行时systemctl --user start Festival.service,它才会启动。

问题

您能否告诉我,为什么用户服务不能与 一起使用multi-user.target,而它应该在每次启动时都起作用?

参考

答案1

multi-user.target适用于系统总线,但您正在使用--user与用户总线一起使用的。用户总线通常没有multi-user.target

stew ~ $ sudo systemctl status multi-user.target
● multi-user.target - Multi-User System
     Loaded: loaded (/lib/systemd/system/multi-user.target; static)
     Active: active since Fri 2021-08-27 10:09:41 CEST; 5h 19min ago
       Docs: man:systemd.special(7)

Aug 27 10:09:41 stewbian systemd[1]: Reached target Multi-User System.


stew ~ $ systemctl --user status multi-user.target
Unit multi-user.target could not be found.

解决方案是使用系统总线(将在启动时启动服务),或使用用户总线(将在用户登录时启动)。

如果您选择坚持使用用户总线,则更改为multi-user.targetdefault.target这是主要用户目标)。

如果您选择切换到系统总线,那么您仍然可以User=在本[Service]节中以您的用户身份运行该服务。

man systemd.special有关这些目标的信息。

相关内容