同じ端末で3つのプロセスを開始してから3つのプロセスをすべて簡単に終了するにはどうすればよいですか?

同じ端末で3つのプロセスを開始してから3つのプロセスをすべて簡単に終了するにはどうすればよいですか?

3つの異なる端末で3つのプロセスを簡単に起動し、各プロセスを終了できますCtrl+C。 3つのプロセスを同時に開始し、同じように簡単に完了する方法はありますか?アイデア:

  1. 3つのプロセスを起動し、同じ端末で実行してCtrl+C3つのプロセスをすべて終了できる場合は機能します。

  2. 2つのスクリプトを生成することができ、3つのプロセスが開始/終了する場合はそれでも問題ありませんinit.shkill.sh

どちらも簡単なので動作します。バックグラウンドでプロセスを作成し、そのプロセスのpidを見つけてコピーしてから、他のコマンドで終了するのは簡単ではありません。

答え1

Bashのジョブ制御を使用する:

$ sleep 10m & sleep 11m & sleep 12m &
[1] 1821
[2] 1822
[3] 1823
$ jobs
[1]   Running                 sleep 10m &
[2]-  Running                 sleep 11m &
[3]+  Running                 sleep 12m &
$ kill %1 %2 %3
$ jobs
[1]   Terminated: 15          sleep 10m
[2]-  Terminated: 15          sleep 11m
[3]+  Terminated: 15          sleep 12m

Bashで実行すると、command &バックグラウンドで送信されます。これにより、同じシェルで複数のコマンドを起動し、バックグラウンドで実行できます。組み込みkill機能を使用して、これらのバックグラウンド操作を終了できます。最初の(最も古い)アクティブなジョブは%1、次のジョブはです%2。また見なさい:すべてのバックグラウンドジョブの終了

関連情報