web-dev-qa-db-ja.com

プロセスIDとkillプロセス-psコマンド

以下の出力をご覧くださいpsコマンド:

abc@smaug:~/Desktop$ ps ax | grep firefox
 2213 ?        Sl     2:01 /usr/lib/firefox/firefox
 2644 pts/0    S+     0:00 grep --color=auto firefox

両方の行と、Firefoxプロセスを強制終了するために使用できるプロセスIDを説明してください。

プロセスID 2644は、そのコマンドを実行するたびに変化し続けます。

6
CODError

firefoxのPIDを見つけようとすると、すべての不要なプロセスをフィルターする新しいプロセスを起動します。このフィルター処理(grep firefox)には検索用語「firefox」も含まれているため、自分自身を見つけることができます。

再起動するたびにps ax | grep firefox新しいgrepプロセスを起動したため、PIDが変化し続けます。

したがって、簡単な答えは次のとおりです。

pID 2213を使用してFirefoxを殺す

誤検知を取り除きたい場合は、別のgrepを使用して除外できます。

 $ ps ax | grep firefox | grep -v grep

さらに別のオプションは、pgrepを使用することです(これは、見つかったプロセスのPIDのみを提供します)。

 $ pgrep firefox
 2213
10
umläute

他の回答は、firefoxについて2つの言及がある理由をすでに説明しています。これが、あなたが試みていることを行う方法がpsを解析するのではなく、pkillおよびpgrepコマンドを使用する理由です。

   pgrep,  pkill  -  look  up  or signal processes based on name and other
   attributes

たとえば、firefoxの実行中のインスタンスを見つけるには、次のように入力します。

$ pgrep -l firefox 
1020 firefox

それらを殺すために:

$ pkill firefox
2
terdon

一発ギャグ:

ps aux | grep firefo[x] | awk '{print $2}' | xargs kill
1
Yifei

あなたが殺さなければならないfirefoxプロセスは:

2213 ?        Sl     2:01 /usr/lib/firefox/firefox

2644プロセスは、実行しているgrepコマンドです。正しく言うと、実行を続けるたびに彼のIDを変更します。

1
ludiegu