web-dev-qa-db-ja.com

kill%1の意味は何ですか

次のコマンドを見ました。

$ kill %1

このステートメントの使用法は何ですか?

13
q0987

簡単に言えば、

プロセスナンバーワンではなく、ジョブナンバー1を殺すことを意味します。

ジョブはjobsコマンドで一覧表示できます。

より広くは、使用しているシェルに関連しており、構文はシェルごとに異なる可能性があります。

Bashシェルを使用すると、ユーザーは複数のプロセス(ジョブ)を同時に実行できます。その親プロセスは、使用しているシェルです。 Googlebashジョブ制御の基本

組み込みのkillコマンドは、これらのジョブパイプラインの1つにシグナルを送信するために使用されます。特定のシグナルが指定されていない場合は、SIGTERMが使用されます。これは通常、ジョブを終了(強制終了)するため、名前はkillになります。ただし、シグナルを指定できますが、その一部は何らかの方法でプロセスをリセットしたり、強制終了しない動作を引き起こす可能性があります。

最後に、%1は、信号を送信するジョブを指定する1つの方法です(多くの!)。 %1は、バックグラウンドジョブのスタックの最上位にあるジョブを参照します。

17
Anders Abel

たとえば、プロセスをバックグラウンドで処理する場合:

# find / &
[1] ....

# ls -lr /usr &
[2] ....

ここで、バックグラウンドで実行され、現在のターミナルに接続されている2つのプロセスがあります。行う場合:%1を殺す

上記の最初の「find」コマンドは終了します。 Andersが言ったように、ターミナルで現在実行中のバックグラウンドプロセスを一覧表示して、それらを強制終了できます。

# jobs
[1] find / ...
[2] ls -lr ...

# kill %1
6
Albert