最後のセッションが存在した後でも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

おすすめ記事