ターミナルプログラムを終了せずにtmuxウィンドウを終了します


80

OKこれは初めてです。tmux数日間の実験を実行するためにインストールしました。入力後tmux new -s name、下部に緑色のバナーが表示された新しいウィンドウが表示されました。Javaプログラムをコンパイルして実行します。今、私はウィンドウを終了する方法がわかりません(実行中のまま)。Javaプログラムがまだ実行中のため、bash(または何でも)カーソルが応答しません。これまでの私の解決策は、ターミナルプログラムを完全に終了し、再度開くことです。ターミナルプログラム全体を終了せずにtmuxウィンドウを終了する方法に関するアイデアはありますか?


2
man tmux | less -p detach
jasonwryan 14

回答:


146

現在接続されているセッションから切断する

セッション

Ctrl+ b dまたはCtrl+b :detach

画面

Ctrl+ a Ctrl+ dまたはCtrl+a :detach


その後tmux attach、再接続後に再度実行して、開いているセッションを開始する必要があります。
ベシ

1
これまでずっとやってきたENTER ~ .これはもっといいようだ。
トーマスエディング

8

前の答えは不完全です、私は信じています。何:detach行うことはtmuxのアクティビティを表示しているビューポートをシャットダウンすることです。ただし、次を実行すると、tmux自体がバックグラウンドで実行されていますps

myuser 1799 0.0 0.0 2500052 4632 ?? Ss 21Feb16 0:48.39 tmux new-session -s Dev

実際、ターミナルを終了して再度起動しても、tmuxプロセスはバックグラウンドで実行されます。

tmuxプロセス自体を実際に強制終了するには、次の手順を実行する必要があります。

tmux kill-session [-t session_name]

または単に:

kill -9 1799


5
私見、その特定の回答の下でいくつかの回答の欠陥についてコメントし、読者が以前の回答を見つけて分析することを要求することなく、投稿を完全かつ包含された回答のままにしておく方がより理にかなっています。
テクラフ

2
OPはバックグラウンドプロセス(彼の場合はjava)の実行を継続することを特に望んでいたので、それを殺すことは逆効果になると思います。より興味深いのは、後でを使用して切り離されたプロセスに再接続することtmux attach-sessionです。
ThomasH

これを行うにkill -9は絶対に間違った方法(tm)を使用します。これSIGKILLは、プロセスがそれ自体をクリーンアップすることを許可しないシグナルを送信します。これは、リソースのダングリングで深刻な問題を引き起こす可能性があります。SIGKILLプロセスが既にSIGTERMまたは同様の方法でクリーンアップおよびシャットダウンするように丁寧に依頼されており、何らかの理由でそうすることを拒否している場合にのみ使用してください。それでも、送信SIGKILLできる場合は送信を避ける必要があります。この答えは、それがtmuxサーバーのようなバックグラウンドプロセスをシャットダウンするために最初にすべきことの1つであるべきだと(誤って)推測します。
エストラーダ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.