РЕДАКТИРОВАТЬ
#!/bin/bash
netstat &
p1=$!
netstat &
p2=$!
netstat &
p3=$!
trap "kill $p1 $p2 $p3" SIGINT
wait $p1 $p2 $p3
Скрипт запускает другие процессы в фоновом режиме и запоминает их идентификаторы процессов.Затем он ждет, пока все они прекратят работу.В то же время, получив SIGINT (то есть ^C
), он убьет те процессы, которые затем также прекратят работу скрипта (из-за отсутствия дополнительных действий).Таким образом, ^C
, используя ваш скрипт, вы можете уничтожить все фоновые серверные процессы.
О да ... Я использую netstat в качестве длительной команды тестирования.Замените все, что вы хотите запустить.
Наконец, вы можете выбрать, какой сигнал отправлять ваши процессы, с помощью kill
.Проверьте man kill
для вариантов;Я думаю, что INT (эквивалент ^C
) по умолчанию.