pkillとkillallの違いは何ですか?


49

pkillはそれよりも多くのフィルタリングルールを持っていることを知っていますkillall。私の質問は、次の違いは何ですか?

pkill [signal] name

そして

killall [signal] name

私はそれkillallがより効果的であり、nameプログラムに一致するすべてのプロセスとサブプロセスを(そして再帰的に)殺すことを読みました。 pkillこれもしませんか?


回答:


46

pgrepそしてpkillユーティリティは、次のように、SunのSolaris 7の中に導入されたg33klordは指摘し、彼らは、実行中のプロセスの名前と照合され、引数としてパターンを取ります。しながら、pgrep単にマッチングプロセスのリストを出力し、pkill所定の信号(又は送信しますSIGTERMプロセスにデフォルトの)。間の共通のオプションとセマンティクスはpgreppkill注意して、最初にリスト一致プロセスを確認しpgrep、次にそれらを削除するときに便利ですpkillpgrepそして、pkillによって提供されるprocpsのに他の提供パッケージ、/proc等のファイルシステムユーティリティ、pstopfreeuptime特にです。

この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のSolarisIBMのAIXおよびHPのHP-UX)のコマンドは、特定のユーザーが強制終了できるすべてのプロセスを強制終了し、rootで実行するとシステムを事実上シャットダウンすることに注意してください。

Linux psmiscユーティリティはBSD(および拡張Mac OS X)に移植されているためkillall、「名前によるプロセスの強制終了」セマンティクスに従います。


私が遭遇した主な違いは、ユーザーによってパターンのコマンドを停止しているkillall -u <username> -r <process>か、pkill <process> -U <uid>その可能killall使用に私のために簡単に多くのことを。
jeremysprofile

13

pkillは、あなたが言及したフィルターと、非常に再利用可能なと組み合わせられているという事実の両方のために、将来の世代に教える価値があるものですpgrep。プロセスを同じように強制終了し、再帰的にも強制終了しません。ただし、pgrepでは、セッション(ttyごと、setsidを考える)またはプロセスグループ(ジョブ制御を考える)で選択できます。


8

1つの違いはkillall、プロセスの正確な名前を引数として使用するのに対して、pkill部分的な名前または完全な名前を使用できることです。

この質問を参照して、pkillについて詳しく知ることができます。


1

killall-名前でプロセスを強制終了します。killallコマンドを使用して、コマンド名、特定のユーザーが所有するプロセス、またはシステム全体のすべてのプロセスなど、選択基準に一致する1つ以上のプロセスにシグナルを送信します。

pkill-指定されたシグナル(デフォルトではSIGTERM)を標準出力にリストする代わりに各プロセスに送信します。pkillのような複数のプロセスを通知できますがkillall、次の任意の組み合わせを含むことができる高度な選択基準を使用することもできます。

コマンドUID親端末

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.