私はこのコマンドを実行しています:
pgrep -l someprocess
私はいくつかの出力を得ますXXXX someprocess
次に、手動で表示されるすべてのプロセスを強制終了します。それを自動的に実行するスクリプトを書きたいのですが、これは意味がありません
kill -9 $(pgrep -l someprocess | grep "^[0-9]{4}")
誰かが助けることができますか?
私はこのコマンドを実行しています:
pgrep -l someprocess
私はいくつかの出力を得ますXXXX someprocess
次に、手動で表示されるすべてのプロセスを強制終了します。それを自動的に実行するスクリプトを書きたいのですが、これは意味がありません
kill -9 $(pgrep -l someprocess | grep "^[0-9]{4}")
誰かが助けることができますか?
または のいずれpkill
かを使用して、killall
まさにそれを達成できます。
プロセスのさまざまな方法を説明するこの簡潔で明確な要約を見つけました。kill
pkill
次のように簡単ですpkill someprocess
。
@ewmkillall
の回答にはすでに詳細な説明が含まれているため、ここでは繰り返しません。
「killall」コマンドを確認することをお勧めします。
KILLALL(1) ユーザー コマンド KILLALL(1)
NAME killall - プロセスを名前で強制終了します
killall [-Z,--context pattern] [-e,--exact] [-g,--process-group] [-i,--interactive] [-q,--quiet] [-r,- -regexp] [-s,--signal シグナル] [-u,--user user] [-v,--verbose] [-w,--wait] [-I,--ignore-case] [-V ,--バージョン] [--] 名前 ... killall -l killall -V,--バージョン
説明 killall は、指定されたコマンドのいずれかを実行しているすべてのプロセスにシグナルを送信します。シグナル名が指定されていない場合は、SIGTERM が送信されます。
Signals can be specified either by name (e.g. -HUP or -SIGHUP ) or by number (e.g. -1) or by option
-s.
If the command name is not regular expression (option -r) and contains a slash (/), processes execut-
ing that particular file will be selected for killing, independent of their name.
killall returns a zero return code if at least one process has been killed for each listed command,
or no commands were listed and at least one process matched the -u and -Z search criteria. killall
returns non-zero otherwise.
A killall process never kills itself (but may kill other killall processes).