ジョブ制御に使用される「kill」コマンドは、プロセスにシグナルを送信するために使用される「kill」コマンドと同じですか?

ジョブ制御に使用される「kill」コマンドは、プロセスにシグナルを送信するために使用される「kill」コマンドと同じですか?

Linuxでは、次のことができます。

kill 1(またはkill %1

これは「プロセス終了」を意味します。ジョブ番号1」。

次のことができます。

kill 1234

これは、「SIGTERMPID 1234で処理するためのシグナルの送信」を意味します。

これら2つのkillコマンドは同じコマンドですか、それとも2つの異なるコマンドですか?

ベストアンサー1

私はあなたがそれを行うことができるかどうかはわかりませんkill 1(または試してみることはできますが、根がなければそれをすることはできず、驚くでしょう)。1これは常にIDが1のプロセスinit(またはそのバリエーション)を表します。

実際にあなたの質問に答えるために使用しているシェルがジョブ制御をサポートしている場合、シェルには両方のケースkill(タスクとプロセス管理)の処理機能が組み込まれています。例を見るバッシュのkill命令

使用しているシェルがジョブ制御をサポートしていない場合(サポートしていますか?)、killこれは通常システムのバイナリです/bin/killutil-linuxkillコマンドkill組み込みコマンドを持つシェルでもフルパスを指定してコマンドにアクセスできます。このkillコマンドはシェルなしでアクセスできます(他のプログラムで使用するため)。

また、見ることができますPOSIXの定義kill、両方のケースを扱っています(ただし、何がどこに実装されるかは指定しません)。

おすすめ記事