我试图在启动时启动在我的用户上下文中运行的服务,该服务不适用于多用户作为目标,而只能使用default,即graphics。
我为我的用户和服务启用了延迟
sudo loginctl enable-linger $USER
systemctl --user enable $SERVCE
systemctl --user start $SERVICE
Run Code Online (Sandbox Code Playgroud)
但是,重新启动后该服务没有启动。
该服务最初针对多用户
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
即,导致服务链接
$HOME/.config/systemd/user/multi-user.target.wants/SERVICE.service
Run Code Online (Sandbox Code Playgroud)
与预期不同,该服务未在启动时启动。
仅在将目标更改为默认值后
WantedBy=default.target
Run Code Online (Sandbox Code Playgroud)
(当前为图形)并重新启用该服务,该服务自动启动。
但是,我假设图形是多用户的下游作为目标,即“稍后”,或者?
是什么阻止了服务以多用户启动?
从man 7 systemd.special,
特殊用户单位。
Run Code Online (Sandbox Code Playgroud)When systemd runs as a user instance, the following special units are available, which have similar definitions as their system counterparts: default.target, shutdown.target, sockets.target, timers.target, paths.target, bluetooth.target, printer.target, smartcard.target, sound.target.
所以没有用户multi-user.target。