Gnomeターミナルでタブを閉じようとすると、次のように表示されます。
このターミナルを閉じますか?この端末ではまだプロセスが実行されています。ターミナルを閉じると強制終了します。
まだ何が実行されているかを知るにはどうすればよいですか?の出力には何もないことに注意してくださいjobs
。ありがとう。
exit
、gnomeターミナルのタブが閉じません。
exit
おそらく閉じます。@egmont、これを回答に移動できますか。
Gnomeターミナルでタブを閉じようとすると、次のように表示されます。
このターミナルを閉じますか?この端末ではまだプロセスが実行されています。ターミナルを閉じると強制終了します。
まだ何が実行されているかを知るにはどうすればよいですか?の出力には何もないことに注意してくださいjobs
。ありがとう。
exit
、gnomeターミナルのタブが閉じません。
exit
おそらく閉じます。@egmont、これを回答に移動できますか。
回答:
ps T
端末に関連付けられているすべてのプロセスを選択します。
nohup
コマンドを介して生成されたプロセスはターミナルから切断されるため、その終了をブロックしないでください。しかし、それらはまだこのコマンドでリストされています。
シェルのPIDを親としてリストするプロセスでピークを取ることができます。ご存じかもしれませんが、ps
形式を指定できます
SHELLPID=$$ ; ps -e -o cmd,pid,ppid | awk -v shell=$SHELLPID '$NF~shell'
ここでは、特殊変数からシェルのPIDを取得する$$
にSHELLPID
、パイプのサブシェルにはawkで使用することができ、。基本的には、プロセスをNAME、PID、Parent PIDの形式で一覧表示し、最後の列に適切なPIDがあるプロセスのみを除外します。
ターミナル(geditなど)でいくつかのプロセスを開始した場合、この2つのプロセスのプロセスID(PID)(bashの)と親プロセスID(PPID)(geditの)は同じになります。これはの出力で見ることができます
ps -ef
コマンド。読みやすくするために、まず出力を「パイプ」して、grep
現在実行中のすべての「bash」プロセスのPIDを見つけてから、もう一度「パイプ」してみましょうawk
。awk
選択のみPIDとプロセス名フィールド(フィールド2及び8)と画面に出力します。
ps -ef | grep bash | awk '{print $2 ": " $8}'
出力の番号はPIDです。これを使用して、そのPIDを持つ端末で開始されたプロセスを見つけます。複数の端末を開いている場合は、複数の出力行が存在する可能性があることに注意してください。次に、そのターミナルセッションの「子」プロセス(存在する場合)を見つけるために、次のコマンドを使用できます。
ps -ef | awk '{if ($3 == EnterPID) print $2 ": " $8;}'
最後のコマンドでEnterPIDの代わりにPID番号を入力する必要があります。「bash」のPIDが複数ある場合は、それらすべてを試す必要があります。
最後のコマンドps -ef
は、PID(前のコマンドで見つけたもの)とPPIDがどのプロセスでも同じであるかどうかの出力を調べて検索するだけです。
より詳しい情報:
screen
、tmux
、script
、ssh
、mc
およびパネルをオフにし、あるいは単に別例えば次のように入力して、シェルbash
、またはこれらの線に沿って何か。Ctrl + Dを押すか、タイプexit
してシェルを終了すると、最終的な場所が表示されます。