마지막 세션이 존재한 후에도 tmux 서버를 계속 실행하는 방법은 무엇입니까?

마지막 세션이 존재한 후에도 tmux 서버를 계속 실행하는 방법은 무엇입니까?

tmux를 시스템 사용자 서비스로 실행하려고 합니다 ~/.config/systemd/user/tmux.service. 서비스를 시작한 systemd --user start tmux후 터미널에서 tmux를 실행하면 해당 서비스의 tmux 서버에 올바르게 연결되는 것 같습니다.

그러나 마지막 세션을 닫으면 tmux 서비스가 중지됩니다. SSH 클라이언트가 tmux 서버를 계속 사용할 수 있기를 원하기 때문에 이것이 문제입니다. 마지막 세션이 닫힌 후 tmux 서버가 자동으로 중지되는 것을 방지하는 방법은 무엇입니까?

[Service]
Type=forking
ExecStart=tmux new-session -s %u -d
ExecStop=tmux kill-session -t %u

[Install]
WantedBy=default.target

해결책:

[Service]
Type=forking
ExecStart=tmux new -s dummy -d
ExecStop=-tmux kill-server
Restart=on-success

[Install]
WantedBy=default.target

답변1

exit-unattachedtmux에는 다음과 같은 옵션이 있습니다 .활성화되면 연결된 클라이언트가 없을 때 서버가 종료됩니다., 비활성화할 수 있습니다

set-option -s exit-unattached off

하지만 ~/.tmux.conf이것은 나에게 (켜든 끄든) 아무런 영향을 미치지 않는 것 같거나 그것이 무엇을 의미하는지 오해하고 있습니다.

다음 줄을 추가하여 종료 시 서비스를 다시 시작하도록 systemd에 요청할 수 있습니다.

Restart=on-success

또한 재부팅 시 명령 실패가 무시되도록 ExecStop명령 접두사를 편집해야 합니다 (해당 시점에서는 서버가 더 이상 실행되지 않기 때문).-kill-session

ExecStop=-/usr/bin/tmux kill-session -t %u

답변2

현재로서는 다음 줄을 파일에 추가하면 .tmux.conf세션이 없을 때 서버가 종료되지 않습니다.

set -g exit-empty off

관련 정보