プロセス名を使用してkillall
ではなくkill -9
を使用することを検討しています。
特定のプロセス名のpidをgrep
またはawk
してから強制終了する方法はありますかkill -9
? killall
は私にとって多く失敗します。
これを多数のリモートマシン用にスクリプト化したいと考えています。
プロセス名は3つのうちの1つになります。
次のようなものを使用したい:
sshpass -p 'password' ssh -n $user@$hostname "one liner to use kill -9"
何か案は?
あなたが言及した-9
引数は、問題のプロセスにkill
が送信するシグナルを指定します。デフォルトはSIGTERM(アプリケーションの終了)です。9はSIGKILL(アプリケーションを即座にそして最も残酷に殺す)と同等です。
killall
はシグナル引数も受け入れます(-9
または-KILL
のように、数字よりもシンボリック名の方を好みます)。
killall -KILL processname
または、pkill
があります。これは、特定のコマンドパターンに一致するプロセスを強制終了し、シグナル引数も同様に受け入れます。 pgrep -a
を使用して、何が殺されるかを「プレビュー」できます。これは、シグナルを送信して殺す代わりに、一致する進行状況をリストします。
pgrep -a processname
pkill processname
基本コマンドだけでなく、引数を含むコマンド全体に対してパターンを照合する場合は、-f
スイッチを追加します。
pgrep -a -f something
pkill -f something
詳細については、関連するマニュアルページを確認してください。さまざまなkillコマンドについてはman kill
、man killall
、man pkill
、利用可能なシグナルの概要についてはman 7 signal
をご覧ください。