使用户systemd服务持久化

使用户systemd服务持久化

我有这个~/.config/systemd/user/weechat.servicesystemd 服务,运行良好,但在系统升级后,该进程被终止,而以前没有这样做。当与 SSH 会话断开连接时,该进程会立即终止。

[Unit]
Description=Weechat IRC Client (in tmux)
After=network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/tmux -2 -u new-session -d -s irc /usr/bin/weechat
ExecStop=/usr/bin/tmux kill-session -t irc

[Install]
WantedBy=default.target

地位:

% systemctl --user status weechat.service
● weechat.service - Weechat IRC Client (in tmux)
   Loaded: loaded (/home/<user>/.config/systemd/user/weechat.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2017-10-05 22:54:54 EEST; 18h ago
  Process: 504 ExecStart=/usr/bin/tmux -2 -u new-session -d -s irc /usr/bin/weechat (code=exited, status=0/SUCCESS)
 Main PID: 504 (code=exited, status=0/SUCCESS)
   CGroup: /user.slice/user-1000.slice/[email protected]/weechat.service
           ├─506 /usr/bin/tmux -2 -u new-session -d -s irc /usr/bin/weechat
           └─507 /usr/bin/weechat

/etc/systemd/logind.conf

[Login]
KillUserProcesses=no

我已启动系统并尝试重新启动systemd-logind.service

哪个配置文件/进程/守护进程在注销后发出终止命令?

答案1

您需要告诉 systemd “逗留”您的用户:

# loginctl enable-linger <user>

这将导致您的用户服务在启动时启动,并在您注销后登录以保留它们(例如关闭您的 ssh 会话)。

相关内容