3つの異なる端末で3つのプロセスを簡単に起動し、各プロセスを終了できますCtrl+C。 3つのプロセスを同時に開始し、同じように簡単に完了する方法はありますか?アイデア:
3つのプロセスを起動し、同じ端末で実行してCtrl+C3つのプロセスをすべて終了できる場合は機能します。
2つのスクリプトを生成することができ、3つのプロセスが開始/終了する場合はそれでも問題ありません
init.sh
。kill.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
。また見なさい:すべてのバックグラウンドジョブの終了