説明にmyName
を含むプロセスを強制終了する必要があります。現在私がやっている:
ps -ax |grep myName
I see PID
kill -9 PID
PIDを入力せずに1つのコマンドで同じことができますか?
myName
が強制終了するプロセス/実行可能ファイルの名前である場合、次を使用できます。
pkill myName
pkill
はデフォルトでSIGTERM
シグナル(シグナル15)を送信します。 SIGKILL
またはシグナル9が必要な場合は、次を使用します。
pkilll -9 myName
myName
がプロセス名でない場合、またはたとえば、別の(長い)コマンドの引数である場合、pkill
(またはpgrep
)は期待どおりに動作しない可能性があります。したがって、-f
オプションを使用する必要があります。 man kill
から:
-f, --full
The pattern is normally only matched against the process name.
When -f is set, the full command line is used.
NOTES
The process name used for matching is limited to the 15 characters present
in the output of /proc/pid/stat. Use the -f option to match against the
complete command line, /proc/pid/cmdline.
そう:
pkill -f myName
または
kill -9 $(pgrep -f myName)
コマンド名を使用して:
pkill -9 myscript
コマンドラインで文字列を探している場合:
kill -9 $(ps ax | grep myName | fgrep -v grep | awk '{ print $1 }')
警告する必要があります:上記のコマンドは、SIGKILL
シグナルを複数のプロセスに送信できます。
pkill
でsignal 9を送信すると、名前でプロセスを強制終了できます。
Sudo pkill -9 myName
検索用語またはコマンド名の一部を入力できる2つの非常にきれいなコマンドpgrep
とpkill
があり、プロセスのPIDを提供するか、(pkill
)そのプロセスを強制終了します。
$ pgrep -f firefox
23699
pkill
および-f
フラグを使用して同じコマンドを実行すると、すべてのFirefoxウィンドウが閉じます。
-f
フラグは、プロセスのコマンドライン全体を検索するために特に必要です。
次のように、特定のプロセス名に関連付けられたすべてのPIDに対して簡単なfor loop
を実行できます。
$ for i in $( ps ax | awk '/[m]yName/ {print $1}' ); do kill ${i}; done
これは、Wordを含むすべてのプロセスを強制終了します:myName
。