16.04를 실행 하고 사용자가 연결을 끊으면 systemd죽습니다 tmux( 변경 요약 ).
230 으로 실행 tmux하거나 screen비슷한 프로그램 을 실행하는 방법이 systemd있습니까? 나는 행동의 장단점에 대한 격렬한 논의를 읽었지만 해결책은 제안되지 않았다.
(229의 동작도 참조하십시오)
16.04를 실행 하고 사용자가 연결을 끊으면 systemd죽습니다 tmux( 변경 요약 ).
230 으로 실행 tmux하거나 screen비슷한 프로그램 을 실행하는 방법이 systemd있습니까? 나는 행동의 장단점에 대한 격렬한 논의를 읽었지만 해결책은 제안되지 않았다.
(229의 동작도 참조하십시오)
답변:
올바른 해결책은 시스템 전체에서 문제가되는 시스템 동작을 비활성화하는 것입니다.
편집 /etc/systemd/logind.conf( 물론 sudo해야 함 ) 및 설정
KillUserProcesses=no
이 설정을 별도의 파일에 넣을 수도 있습니다 (예 :) /etc/systemd/logind.conf.d/99-dont-kill-user-processes.conf.
그런 다음 다시 시작하십시오 systemd-logind.service.
sudo systemctl restart systemd-logind
loginctl enable-linger <user>. From man loginctl: "특정 사용자에 대해 활성화 된 경우, 사용자 관리자는 부팅시 사용자를 위해 생성되고 로그 아웃 후에도 유지됩니다. 이렇게하면 로그인하지 않은 사용자는 장기 실행 서비스를 실행할 수 있습니다."
@Rinzwind의 답변을 기반으로하고 단위 설명 에서 영감을 얻은 가장 좋은 것은 TaaS (Tmux as a Service)를 사용 tmux하는 것입니다.
# cat /etc/systemd/system/tmux@.service
[Unit]
Description=tmux default session (detached)
Documentation=man:tmux(1)
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/tmux new-session -d -s %I
ExecStop=/usr/bin/tmux kill-server
KillMode=none
[Install]
WantedBy=multiplexer.target
# systemctl start tmux@instanceone.service
# systemctl start tmux@instancetwo.service
# tmux list-sessions
instanceone: 1 windows (created Sun Jul 24 00:52:15 2016) [193x49]
instancetwo: 1 windows (created Sun Jul 24 00:52:19 2016) [193x49]
# tmux attach-session -t instanceone
(instanceone)#
모든 프로세스가 종료 된 경우에도 서비스가 활성으로 간주되는지 여부를 지정하는 부울 값을 사용합니다. 기본값은 no입니다.
tmux내 대답과 반대로 대화 형 으로 시작하여) 사용할 수 있습니까?
tmux시작 하기 위해 별칭을 만들 수 있습니다 . systemd-run --remain-after-exit tmux--scope --user
systemd-229-4ubuntu7(xenial-updates에서) 가지고 있으며이 동작을 보지 못합니다. 어쨌든,이 동작은 이미 데비안에서systemd-230-2복구되었으므로 우분투에서도 곧 복구 될 것입니다.