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

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

コメント

  • man tmux | less -p detach
  • よりインタラクティブな方法として、Ctrl+b sを実行すると、セッションが一覧表示され、強制終了するセッションに移動して、:kill-sessionと入力します。

回答

現在接続されているセッションから切り離します

セッション

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

画面

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

コメント

  • 次に、tmux attachを実行して、再接続後に開いているセッションに再度入る必要があります。
  • I '常にENTER ~ .これは良いようです。
  • ~および.であり、permission denied: /home/folder @ThomasEding
  • @alperも返します。式Iにスペースはありません。上に入力しました。

回答

以前の回答は不完全だと思います。 :detachが行うことは、tmuxアクティビティを表示しているビューポートをシャットダウンすることです。ただし、psを実行するとわかるように、tmux自体は引き続きバックグラウンドで実行されています。

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

コメント

  • イムホ、その特定の回答の下でのいくつかの回答'の欠陥についてコメントする方が理にかなっています読者が以前の回答を見つけて分析する必要なしに、投稿を完全で含まれた回答として残します。
  • OPは特にバックグラウンドプロセス(彼の場合はjava)を実行し続けることを望んでいたと思います、それでそれを殺すことは逆効果になるでしょう。さらに興味深いのは、後でtmux attach-sessionを使用してデタッチされたプロセスに再接続することです。
  • kill -9を使用することは絶対にこれを行うには間違った方法(tm)。これにより、SIGKILLシグナルが送信され、プロセスがそれ自体の後でクリーンアップされなくなり、リソースのぶら下がりに深刻な問題が発生する可能性があります。 SIGKILLは、プロセスがSIGTERMなどを介して、何らかの理由でクリーンアップとシャットダウンをすでに丁寧に求められている場合にのみ使用してください。そうすることを拒否します。それでも、可能であればSIGKILLの送信は避けてください。この回答は、tmuxサーバーのようなバックグラウンドプロセスをシャットダウンするために人が最初にすべきことの1つであるべきだと(誤って)推測しています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です