systemd 每用户实例不会自动启动服务单元

systemd 每用户实例不会自动启动服务单元

我希望systemd每用户实例在启动时启动以下服务单元:

user.name@svr:~$ systemctl --user cat tmux
# /etc/systemd/user/tmux.service
[Unit]
Description=Start tmux in detached session

[Service]
Type=forking
ExecStart=/usr/bin/tmux new-session -s test -d
ExecStop=/usr/bin/tmux kill-session -t test
Restart=always
RestartSec=1

[Install]
WantedBy=default.target
user.name@svr:~$

延迟已启用:

user.name@svr:~$ sudo loginctl show-user user.name | grep Linger=
Linger=yes
user.name@svr:~$

但是,当我重新启动服务器时,服务未启动:

user.name@svr:~$ systemctl --user status tmux
● tmux.service - Start tmux in detached session
   Loaded: loaded (/etc/systemd/user/tmux.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
user.name@svr:~$

我可以tmux手动启动该服务,systemctl --user status tmux没有任何问题。另外,根据每个用户实例本身正在运行systemctl --user statussystemd

user.name@svr:~$ systemctl --user status 
● svr
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Tue 2019-12-03 22:02:41 UTC; 15min ago
   CGroup: /user.slice/user-1000.slice/[email protected]
           └─init.scope
             ├─456 /lib/systemd/systemd --user
             └─462 (sd-pam)
user.name@svr:~$ 

这应该意味着 Linux PAM 配置没有问题。

为什么 systemd 每用户实例不自动启动服务单元?

答案1

我在部分时启用了( systemctl --user enable tmux) ,后来忘记重新启用该服务。检查目录的内容帮助我发现了我的错误。tmux.serviceWantedBy=multi-user.target[Install]/etc/systemd/user/tmux.service~/.config/systemd/user/

相关内容