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-unattached
tmuxには次のオプションがあります。有効にすると、接続されたクライアントが存在しないときにサーバーがシャットダウンします。、無効にすることができます
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