GNU/Linux >> Linux の 問題 >  >> Linux

kill 、 pkill 、 killall の違いは何ですか?

kill コマンドは kill への非常に単純なラッパーです システムコール 、プロセス ID (PID) のみを認識します。 pkillkillall kill のラッパーでもあります システムコール 、(実際には、システムコールを直接呼び出すlibcライブラリに)、プロセス名、プロセスの所有者、セッションIDなどに基づいてPIDを決定できます.

どのように pkillkillall 作業は ltrace を使用して見ることができます または strace それらの上に。 Linux では、どちらも /proc まで読み取ります。 ファイルシステム、および見つかった pid (ディレクトリ) ごとに、名前またはその他の属性によってプロセスを識別する方法でパスをトラバースします。これがどのように行われるかは、技術的に言えば、カーネルとシステムに固有です。通常、/proc/<PID>/stat から読み取ります。 2 番目のフィールドとしてコマンド名が含まれています。 pkill -f の場合 そして pgrep /cmdline を調べる 各 PID の proc エントリのエントリ。

pkillpgrep readproc を使用 システムコール、killall ではない。パフォーマンスに違いがあるかどうかはわかりません。自分でベンチマークする必要があります。


kill と killall は、プロセスを強制終了する方法を提供するツールです。 1 つ目は PID、2 つ目は name.pgrep (リスト) と pkill (デフォルトでは kill) は、名前またはその他の属性によってプロセスにメッセージを送信する方法を提供するツールです。http://linux.die を参照してください。 net/man/1/pkill シグナルに関する詳細情報:http://linux.die.net/man/7/signal


Linux
  1. InnoDBとMyISAMの違いは何ですか?

  2. Cのstrtok_rとstrtok_sの違いは何ですか?

  3. ls と l はどう違いますか?

  1. fsck と e2fsck の違いは何ですか?

  2. 非プリエンプティブ、プリエンプティブ、セレクティブ プリエンプティブ カーネルの違いは何ですか?

  3. 「su -」と「su --login」の違いは何ですか?

  1. adduser と useradd の違いは何ですか?

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

  3. $(CC) と $CC の違いは何ですか?