バックグラウンドでいくつかのコマンドラインアプリケーションを実行しますが、後でアクティブに保たれる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