コマンドps -A | grep <application_name>
を実行して、次のようなプロセスのリストを取得します。
19440 ? 00:00:11 <application_name>
21630 ? 00:00:00 <application_name>
22694 ? 00:00:00 <application_name>
リストからすべてのプロセスを強制終了したい:19440
、21630
、22694
。
私はps -A | grep <application_name> | xargs kill -9 $1
を試しましたが、エラーで動作します。
kill: illegal pid ?
kill: illegal pid 00:00:00
kill: illegal pid <application_name>
どうすればこれを優雅に行うことができますか?
問題はそれです ps -A | grep <application_name> | xargs -n1
はこのような出力を返します
19440
?
00:00:11
<application_name>
21630
?
00:00:00
<application_name>
22694
?
00:00:00
<application_name>
awk
を使用して、最初にps
出力の列を取得するを使用できます。
ps -A | grep <application_name> | awk '{print $1}' | xargs -n1
PIDのリストを返します
19440
21630
22694
そしてkill -9 $1
すべてのPIDを強制終了するコマンドがあります
ps -A | grep <application_name> | awk '{print $1}' | xargs kill -9 $1
killall
はそれを行うことができます。
$ killall application_name