사용자 시스템 서비스를 지속적으로 만듭니다.

사용자 시스템 서비스를 지속적으로 만듭니다.

나는 이 ~/.config/systemd/user/weechat.service시스템 서비스를 가지고 있는데, 잘 돌아가고 있지만 시스템 업그레이드 후에 프로세스가 종료되어 이전에는 발생하지 않았습니다. 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.

로그아웃 후 kill 명령을 실행하는 프로필/프로세스/데몬은 무엇입니까?

답변1

사용자에게 "대기"하도록 systemd에 지시해야 합니다.

# loginctl enable-linger <user>

이렇게 하면 부팅 시 사용자 서비스가 시작되고, 로그아웃한 후에도 서비스를 유지하기 위해 로그인합니다(예: SSH 세션 닫기).

관련 정보