このコマンドps -ef | grep php
は、プロセスのリストを返します
1 つのコマンドまたはシェル スクリプトでこれらすべてのプロセスを強制終了したい
ありがとう
特定の名前を持つすべてのコマンドを強制終了する最も簡単な方法は、次を使用することkillall
です。
killall php
これは割り込み信号のみを送信することに注意してください。プロセスが動作している場合、これで十分です。彼らがそれで死んでいない場合は、強制的に殺すことができます
killall -9 php
これを行う通常の方法はxargs
as inを使用するps -ef | grep php | xargs kill
ことですが、これを行うにはいくつかの方法があります。
ps -ef
すべてのプロセスをリストしてgrep
から、「php」に言及しているいくつかの行を選択するために使用します。これは、コマンド ラインの一部として "php" を含むコマンドも一致し、強制終了されることを意味します。本当にコマンドを一致させたい (引数も一致させたくない) 場合は、おそらく を使用することをお勧めしますpgrep php
。
次のように、シェルのバッククォートを使用して、コマンドの出力を引数として別のコマンドに提供できます。
kill `pgrep php`
プロセスのみを強制終了したい場合は、コマンドpkill
にパターンを一致させるコマンドがあります。ただし、プロセスで何か他のことをしたい場合、これは使用できません。これは、コマンドに「php」が含まれるすべてのプロセスを強制終了したい場合は、 を使用してこれを実行できることを意味しますpkill php
。
お役に立てれば。
その pid を見つけて (最初の列に表示されます)、次のコマンドをps
使用して強制的に強制終了できます。kill
kill -9 <pid you found>
使用xargs
:
ps -ef | grep php | grep -v grep | awk '{print $2}' | xargs kill -9
grep -v grep
コマンド自体を除外し、コマンドawk
に渡される PID のリストを提供しますkill
。
を使用しpkill php
ます。このトピックの詳細については、この同様の質問: How can I kill a process by name instead of PID?