2

私はこのコマンドを実行しています:

pgrep -l someprocess

私はいくつかの出力を得ますXXXX someprocess

次に、手動で表示されるすべてのプロセスを強制終了します。それを自動的に実行するスクリプトを書きたいのですが、これは意味がありません kill -9 $(pgrep -l someprocess | grep "^[0-9]{4}")

誰かが助けることができますか?

4

2 に答える 2

5

または のいずれpkillかを使用して、killallまさにそれを達成できます。

プロセスのさまざまな方法を説明するこの簡潔で明確な要約を見つけました。kill

pkill次のように簡単ですpkill someprocess

@ewmkillallの回答にはすでに詳細な説明が含まれているため、ここでは繰り返しません。

于 2013-03-12T18:15:38.080 に答える
3

「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).
于 2013-03-12T18:16:00.517 に答える