![%1を殺すとはどういう意味ですか](https://rvso.com/image/1284799/%251%E3%82%92%E6%AE%BA%E3%81%99%E3%81%A8%E3%81%AF%E3%81%A9%E3%81%86%E3%81%84%E3%81%86%E6%84%8F%E5%91%B3%E3%81%A7%E3%81%99%E3%81%8B.png)
次のコマンドを見たことがあります:
$ kill %1
このステートメントの使用法は何ですか?
答え1
簡単に言うと、
それは殺すことを意味する仕事1番、プロセス一番。
コマンドを使用してジョブを一覧表示できますjobs
。
もっと広く言えば、これは使用しているシェルに関係し、構文はシェルごとに異なる可能性があります。
bash シェルを使用すると、ユーザーは複数のプロセス (ジョブ) を同時に実行できます。その親プロセスは、使用しているシェルです。Google bash ジョブ制御の基本
組み込みの kill コマンドは、これらのジョブ パイプラインの 1 つにシグナルを送信するために使用されます。特定のシグナルが指定されていない場合は、SIGTERM が使用され、通常はジョブが終了 (強制終了) されるため、kill という名前が付けられています。ただし、任意のシグナルを指定することもできますが、その一部はプロセスをリセットしたり、強制終了しない動作を引き起こしたりする可能性があります。
最後に、%1 は、シグナルを送信するジョブを指定する方法の 1 つです (方法は多数あります)。%1 は、バックグラウンド ジョブのスタックの一番上にあるジョブを参照します。
答え2
たとえば、プロセスをバックグラウンドで実行すると、次のようになります。
# find / &
[1] ....
# ls -lr /usr &
[2] ....
ここで、バックグラウンドで実行され、現在のターミナルに接続されている 2 つのプロセスがあります。これを行うには、kill %1 を実行します。
上記の最初の「find」コマンドは終了します。Anders が説明したように、ターミナル上で現在実行中のバックグラウンド プロセスを一覧表示して、それらを強制終了することができます。
# jobs
[1] find / ...
[2] ls -lr ...
# kill %1