Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

終了時に「実行中のプロセスが存在します」と言わせないためのtmux起動法

zshrcにtmux attachと記述してtmuxを起動させるというテクニック、ご存知ですよね?とても便利ですし僕自身使っていました。

しかし、この方法では端末の×ボタンを押したときに「この端末を閉じますか?」という警告メッセージが出ます。とてもストレスですし、なにか間違えているのではないかと思い調べてみました。 f:id:panda_noir:20180226173550p:plain

exec tmuxする

まず結論から言うと、

$ exec tmux attach

とすれば警告が出なくなります。

原理

zshでexecからコマンドを実行すると、シェルのプロセスが指定したコマンドのプロセスに置き換わります。

zsh上で単にtmux attachとすると、ターミナルを閉じる時には「zshがtmuxの実行を待機している状態」なので「この端末を閉じますか?」という警告が出ます。

それに対し、exec tmux attachとすると、「tmuxのプロセスが動いているだけ」なので、ターミナルは特に警告を出さないで終了します。

なんとなくおわかりいただけたでしょうか?かくいう私もザックリとしか理解できていないのでアレですが。