web-dev-qa-db-ja.com

端末の起動時にtmuxを適切に起動する方法は?

このスニペットを使用して、ターミナルの起動時にtmuxを起動しました。

# TMUX startup
if command -v tmux>/dev/null; then
 [[ ! $TERM =~ screen ]] && [ -z $TMUX ] && exec tmux
fi

しかし、これでは端末画面を閉じないとtmuxを終了できません。

私はもう試した:

Ctrl + b :detach

exit

そして、PIDを探して殺します。これらのメソッドはすべて、ターミナルも閉じます。

ターミナルを起動するときにtmuxを起動するように設定しますが、ターミナルを閉じなくてもtmuxを閉じることはできますか?ヒントは大歓迎です!

7
bpinaya

問題はexecコマンドです。説明したように hereexecは、現在のシェルを実行するように指定したものに置き換えます。したがって、tmuxを実行しているシェルがなく、tmuxがあるだけなので、シェルを終了するとターミナルも終了します。

execを削除するだけで、期待どおりに機能するはずです。

if command -v tmux>/dev/null; then
 [[ ! $TERM =~ screen ]] && [ -z $TMUX ] && tmux
fi
10
terdon