回答:
pgrep
そしてpkill
ユーティリティは、次のように、SunのSolaris 7の中に導入されたg33klordは指摘し、彼らは、実行中のプロセスの名前と照合され、引数としてパターンを取ります。しながら、pgrep
単にマッチングプロセスのリストを出力し、pkill
所定の信号(又は送信しますSIGTERM
プロセスにデフォルトの)。間の共通のオプションとセマンティクスはpgrep
、pkill
注意して、最初にリスト一致プロセスを確認しpgrep
、次にそれらを削除するときに便利ですpkill
。pgrep
そして、pkill
によって提供されるprocpsのに他の提供パッケージ、/proc
等のファイルシステムユーティリティ、ps
、top
、free
、uptime
特にです。
このkillall
コマンドはpsmiscパッケージによって提供され、pkill
デフォルトでは、シグナルが送信されるプロセスを決定するときに引数名(最初の15文字まで)と正確に一致するという点で異なります。-e
、--exact
オプションも15文字より長い名前の正確な一致を必要とするように指定することができます。これにより、にkillall
比べて使用が多少安全になりますpkill
。指定された引数にスラッシュ(/
)文字が含まれている場合、引数はファイル名として解釈され、その特定のファイルを実行しているプロセスがシグナル受信者として選択されます。killall
また経て、プロセス名の正規表現のマッチングをサポートし-r
、--regexp
オプション。
他にも違いがあります。killall
例えば、コマンドは(年齢別マッチング処理のためのオプションがあり-o
、--older-than
かつ-y
、--younger-than
一方で、) pkill
(を経由して、特定の端末にのみキルプロセスに伝えることができる-t
オプション)。明らかに、2つのコマンドには特定のニッチがあります。
Unix System Vのkillall
子孫システム(特にSunのSolaris、IBMのAIXおよびHPのHP-UX)のコマンドは、特定のユーザーが強制終了できるすべてのプロセスを強制終了し、rootで実行するとシステムを事実上シャットダウンすることに注意してください。
Linux psmiscユーティリティはBSD(および拡張Mac OS X)に移植されているためkillall
、「名前によるプロセスの強制終了」セマンティクスに従います。
killall -u <username> -r <process>
か、pkill <process> -U <uid>
その可能killall
使用に私のために簡単に多くのことを。
killall
-名前でプロセスを強制終了します。killall
コマンドを使用して、コマンド名、特定のユーザーが所有するプロセス、またはシステム全体のすべてのプロセスなど、選択基準に一致する1つ以上のプロセスにシグナルを送信します。
pkill
-指定されたシグナル(デフォルトではSIGTERM)を標準出力にリストする代わりに各プロセスに送信します。pkill
のような複数のプロセスを通知できますがkillall
、次の任意の組み合わせを含むことができる高度な選択基準を使用することもできます。
コマンドUID親端末