別のシェル(ターミナルウィンドウまたはタブ)で開始されたジョブを強制終了するにはどうすればよいですか?


9

プロセスを開始し、ターミナルウィンドウでそれをバックグラウンド化する場合(たとえばping google.com &)、それを使用kill %1してプロセスを強制終了できます(ジョブ1と想定)。

ただし、別のターミナルウィンドウ(またはタブ)を開くと、バックグラウンドプロセスはリストに表示されjobsず、を使用して直接終了することはできませんkill

別のターミナルウィンドウまたはタブからこのプロセスを強制終了することはできますか?

注:私はXfceターミナルエミュレータ0.4.3とbashを使用しています(ただし、ソリューションが別の一般的なシェルに存在するがbashではない場合は、それにオープンしています)

回答:


10

はい、知っておく必要があるのは、プロセスのプロセスID(PID)だけです。これはpsコマンドまたはコマンドで見つけることができますpidof

kill $(pidof ping)

他のシェルから動作するはずです。そうでない場合は、pingにpsとgrepを使用できます。


6

top別のターミナルウィンドウに入力すると、実行中のすべてのプロセスが一覧表示されます。jobそこのプロセスIDを書き留めてqから、を押してその画面を終了します。次にkill、通常どおりのプロセス。


あなたの答えに感謝しますがtop、シェルで実行されているすべての特定のプロセスを表示するようには見えません(たとえば、それは表示されませんping)。端末エミュレータのPIDを取得しますが、期待どおりに端末エミュレータが強制終了されます。
DQdlM 2012

1
top -U yourusernameターミナルに入力すると、使用しているプロセスのみが一覧表示されます。
arthankamal

驚くばかり!そのための+1!ありがとう
DQdlM

トップで、kを押してから15を押してソフトキル(最初に試してください)、9を押してハードキルを行います。
マイケル・デュラント

4

私は通常次のようなことをします:

ps aux | grep $PROCESS | grep -v grep | awk '{print $2 " " $11}'

たとえば、$ PROCESS = "bash"の場合、これは現在のセッションからの出力です。

2683 bash
4481 bash
5695 bash

次に、もう実行したくないものkill $PIDを選び/bin/bashます。

psgrepおよび(オプションで)awkPIDをに探すのに役立ちますkill

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.