3

このコマンドps -ef | grep phpは、プロセスのリストを返します

1 つのコマンドまたはシェル スクリプトでこれらすべてのプロセスを強制終了したい

ありがとう

4

5 に答える 5

3

特定の名前を持つすべてのコマンドを強制終了する最も簡単な方法は、次を使用することkillallです。

killall php

これは割り込み信号のみを送信することに注意してください。プロセスが動作している場合、これで十分です。彼らがそれで死んでいない場合は、強制的に殺すことができます

killall -9 php
于 2012-09-16T08:08:57.240 に答える
2

これを行う通常の方法はxargsas inを使用するps -ef | grep php | xargs killことですが、これを行うにはいくつかの方法があります。

  • ps -efすべてのプロセスをリストしてgrepから、「php」に言及しているいくつかの行を選択するために使用します。これは、コマンド ラインの一部として "php" を含むコマンドも一致し、強制終了されることを意味します。本当にコマンドを一致させたい (引数も一致させたくない) 場合は、おそらく を使用することをお勧めしますpgrep php

  • 次のように、シェルのバッククォートを使用して、コマンドの出力を引数として別のコマンドに提供できます。

    kill `pgrep php`

  • プロセスのみを強制終了したい場合は、コマンドpkillにパターンを一致させるコマンドがあります。ただし、プロセスで何か他のことをしたい場合、これは使用できません。これは、コマンドに「php」が含まれるすべてのプロセスを強制終了したい場合は、 を使用してこれを実行できることを意味しますpkill php

お役に立てれば。

于 2012-09-16T08:17:52.910 に答える
1

その pid を見つけて (最初の列に表示されます)、次のコマンドをps使用して強制的に強制終了できます。kill

kill -9 <pid you found>
于 2012-09-16T08:05:47.973 に答える
1

使用xargs:

ps -ef | grep php | grep -v grep | awk '{print $2}' | xargs kill -9

grep -v grepコマンド自体を除外し、コマンドawkに渡される PID のリストを提供しますkill

于 2012-09-16T08:06:35.150 に答える
0

を使用しpkill phpます。このトピックの詳細については、この同様の質問: How can I kill a process by name instead of PID?

于 2012-09-16T08:05:59.847 に答える