systemd:用户服务在启动时以目标默认/图形但不是多用户启动

THX*_*THX 3 linux systemd

我试图在启动时启动在我的用户上下文中运行的服务,该服务不适用于多用户作为目标,而只能使用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)

(当前为图形)并重新启用该服务,该服务自动启动。

但是,我假设图形多用户的下游作为目标,即“稍后”,或者?

是什么阻止了服务以多用户启动?

meu*_*euh 5

man 7 systemd.special,

特殊用户单位。

  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.
Run Code Online (Sandbox Code Playgroud)

所以没有用户multi-user.target。