在系统启动时而不是在用户登录时启动 systemd 用户服务

在系统启动时而不是在用户登录时启动 systemd 用户服务

给定 UID 1000 的服务定义~/.config/systemd/user/do-something.service,该服务会自动安装、启用和启动登录时,我想do-something.service开始在系统启动时反而。

一种可能的解决方案是[email protected]作为系统的依赖项进行安装multi-user.target,但问题是这是否是推荐的设置以及它的缺点是什么。

答案1

据我了解ArchWiki 上的 systemd/User 条目,在启动时启动用户管理器是由 systemd-logind 处理的。对于当前用户:

loginctl enable-linger

对于不同的USER(用户名或 ID):

sudo loginctl enable-linger USER

手册页

如果为特定用户启用,则会在启动时为该用户生成用户管理器,并在注销后保留。这允许未登录的用户运行长时间运行的服务。

相关内容