複数のアプリケーションを実行し、アクティブに保ち、終了時にすべて終了するスクリプト

複数のアプリケーションを実行し、アクティブに保ち、終了時にすべて終了するスクリプト

バックグラウンドでいくつかのコマンドラインアプリケーションを実行しますが、後でアクティブに保たれるbashスクリプトをどのように書くことができますか(ターミナル/コンソールブロック)。終了すると、実行されたすべてのアプリケーションが終了します。

それは可能ですか?そうでない場合は、どの代替ソリューションを検討する必要がありますか?では、どのように実装しますか?

現在私はこれを持っています:

#!/bin/bash

command_1 &>/dev/null &

command_2 &>/dev/null &

command_3 &>/dev/null &

fg

編集:今動作します。ありがとうございます!

#!/usr/local/bin/bash

set -eu

trap "kill -9 -- 0" EXIT ERR SIGINT SIGQUIT SIGTERM SIGKILL SIGHUP SIGABRT

sleep 60 &>/dev/null &
sleep 60 &>/dev/null &
sleep 60 &>/dev/null &
sleep 60 &>/dev/null &

while :; do
    :
done

答え1

このような? (FelixNjのコメントに基づいて更新されました)。

#!/bin/bash
set -eu

trap "kill -9 -- 0" EXIT ERR
   
sleep 600 &

sleep 600 &

# loop
while :; do
    # do something clever here
    :
done

関連情報