
Ubuntu16.04
私はこのコマンドラインを使用してコマンドと一致するすべてのプロセスを終了することに慣れています。
for i in $(ps -ef | grep COMMAND | awk '{ print $2 }'); do kill -9 "$i" &>/dev/null;done
shellcheckはあまり好きではないと提案します
root@singa /home # shellcheck run
In run line 4:
for i in $(ps -ef | grep COMMAND | awk '{ print $2 }'); do kill -9 "$i" &>/dev/null;done
^-- SC2009: Consider using pgrep instead of grepping ps output.
XXXを置き換えるためにこれを行うにはどのフラグが必要ですか?
for i in $(pgrep XXX | grep COMMAND | awk '{ print $2 }'); do kill -9 "$i" &>/dev/null;done
pgrepのマニュアルページを確認しました。
答え1
for pid in $(pgrep command); do
kill -9 $pid
done
または、より良い方法は次のとおりです。
pkill -9 command
しかし、無関心な使用は、kill -9
時にはゾンビの発生、孤立したファイル、永続的な一時ファイルや他の病気につながる可能性があります。代わりに、kill
デフォルトの転送を使用することを検討してください。SIGTERM
SIGKILL
答え2
私は次の方法を実行しました
for i in pickup hald-runner; do pgrep $i | awk '{print "kill" " " $1}'| sh;done
ここでピックアップ、ホールドランナーはプロセス名です。