Я пытаюсь создать сценарий bash, который будет запускать несколько долгоживущих скриптов - все это будет завершено с завершением сценария. Например:запускать несколько процессов параллельно, но выходить вместе в bash
x.sh:
while :; do sleep 10 && echo '10 seconds passed'; done
код pseduo для y.sh:
./x.sh [anchored&]
./x.sh [anchored&]
./x.sh [anchored&]
, а затем в оболочке, должны быть в состоянии сделать что-то вроде:
$ ./y.sh
# after 10 seconds
10 seconds passed
10 seconds passed
10 seconds passed
# after another 10 seconds
10 seconds passed
10 seconds passed
10 seconds passed
^[CTRL-C]
$ # all scripts are now canceled
В моем фактическом прецеденте, конечно, я не запускаю один и тот же сценарий (x.sh) несколько раз, но разные команды.
Trap 'SIGTERM' затем отправляет сигнал SIGTERM во все фоновые процессы. – alvits
Я понял, что вы хотите «CTRL-C». Это 'SIGINT'. – alvits