OKこれは初めてです。tmux
をインストールして実行しました数日間の実験。tmux new -s name
と入力すると、下部に緑色のバナーが表示された新しいウィンドウが表示されます。Javaプログラムをコンパイルして実行します。ウィンドウを終了する方法がわかりません( javaプログラムがまだ実行されているため、bash(またはその他)カーソルが応答しません。これまでの私の解決策は、ターミナルプログラムを完全に終了し、再度開くことです。終了せずにtmuxウィンドウを終了する方法に関するアイデアターミナルプログラム全体?
コメント
回答
現在接続されているセッションから切り離します
セッション
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つであるべきだと(誤って)推測しています。
man tmux | less -p detach
Ctrl+b s
を実行すると、セッションが一覧表示され、強制終了するセッションに移動して、:kill-session
と入力します。