「for i in」ループで使用するには、「pgrep」を使用して「ps -ef」をエミュレートします。

「for i in」ループで使用するには、「pgrep」を使用して「ps -ef」をエミュレートします。

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デフォルトの転送を使用することを検討してください。SIGTERMSIGKILL

おすすめ記事