私が一般的に使用するのは、pidof
プロセスのpidを取得してKILL -SIGTERM <pid>
殺すことです。
パイプは、あるコマンドの出力を別のコマンドの入力として使用すると仮定されます。
それでは、次のコマンドが機能しないのはなぜですか?
pidof firefox | kill -SIGTERM
ベストアンサー1
パイプは、あるコマンドの出力を別のコマンドの入力として使用すると仮定されます。
これは正確ですが、kill
標準入力のどの入力も受け入れません。代わりに、コマンドライン引数として指定する必要があります。
kill -SIGTERM "$(pidof firefox)"
または:
pidof firefox | xargs kill
$(
これはシェル内のコマンド拡張ですが、xargs
外部です。
ただし、これらの方法には、pidが複数ある場合やpidがない場合に実行する操作など、極端な場合がよくあります。これがpkillが存在する理由です。
pkill -TERM firefox