![로그아웃으로 인해 tmux 세션이 종료되지 않도록 방지](https://linux55.com/image/144941/%EB%A1%9C%EA%B7%B8%EC%95%84%EC%9B%83%EC%9C%BC%EB%A1%9C%20%EC%9D%B8%ED%95%B4%20tmux%20%EC%84%B8%EC%85%98%EC%9D%B4%20%EC%A2%85%EB%A3%8C%EB%90%98%EC%A7%80%20%EC%95%8A%EB%8F%84%EB%A1%9D%20%EB%B0%A9%EC%A7%80.png)
tmux
내 X 사용자 세션에서 로그아웃(로그아웃) 하면 내가 시작한 모든 세션이 종료된다는 것을 알았습니다. sudo tmux
비슷한 명령으로 실행한 세션도 마찬가지입니다. 이전에는 이런 일이 발생하지 않았을 것이라고 확신하지만 최근 일부 변경 사항이 이 동작에 영향을 미쳤습니다.
X 세션을 종료한 후에도 이러한 tmux
세션을 어떻게 유지합니까?screen
답변1
이 "기능"은 systemd
이전에도 존재했지만개발자는 systemd
기본값을 변경하기로 결정했습니다., 세션에서 로그오프할 때 하위 프로세스를 종료하도록 설정을 활성화합니다.
logind.conf
( )에서 이 설정을 복원할 수 있습니다 /etc/systemd/logind.conf
.
KillUserProcesses=no
다음과 같은 래퍼를 tmux
사용하여 실행할 수도 있습니다 .systemd-run
systemd-run --scope --user tmux
이러한 시스템의 경우 명령에 이름만 지정할 수 있습니다 tmux
(또는 screen
:
alias tmux="systemd-run --scope --user tmux"
답변2
누락된 비트SU에서 찾을 수 있습니다.:
첫째: $USER
로그아웃한 후에도 SystemD 인스턴스를 계속 실행합니다.
sudo loginctl enable-linger $USER
두번째:재시작. ( man loginctl
이 설정은 다음 시작시에만 적용됩니다.)
세 번째: tmux
SystemD 인스턴스의 제어 하에 시작합니다.$USER
systemd-run --scope --user tmux
그게 다야.
/etc/systemd/logind.conf
이에 대한 변경은 필요하지 않습니다 .
노트:
- 이를 수행하지 않는 사용자에게만 필요합니다
root
. tmux
을 통과하는 대신 직접 실행 하면systemd-run
종료됩니다.- 따라서 다음과 같이 별칭이나 래퍼 스크립트를 사용하십시오.
#!/bin/bash
[ -x /usr/bin/systemd-run ] &&
dbus-send --print-reply / org.freedesktop.DBus.Peer.Ping &&
/usr/bin/systemd-run --scope --user -- /bin/true &&
exec /usr/bin/systemd-run --scope --user -- /usr/bin/tmux "$@"
exec /usr/bin/tmux "$@"
프로필이 재설정된 후 사라질 수 있는 편집 내용을 chmod +x "$HOME/bin/tmux"
방지하기 위해 설치했습니다 ..bashrc
업데이트: 컨텍스트에서 /usr/bin/systemd-run --scope --user -- /bin/true
X11 병렬 활동을 사용할 수 있는지 테스트해야 합니다 . 여기서 영구적으로 실행하려면 가 아닌 X11 세션에서 실행해야 합니다 .systemd-run
ssh
tmux
ssh
업데이트 2: 재부팅이 필요하며링거 상태를 확인할 수 있습니다.그리고
ls -al /var/lib/systemd/linger