Как убить все процессы, которые были открыты сценарием оболочки при Ctrl + C?

У меня есть пара сценариев Python, которые я начинаю вместе с сценария оболочки следующим образом:

#!/bin/bash
python prog1.py &
python prog2.py &
python prog3.py 

Поскольку я развиваюсь, я часто хочу остановить эти процессы. Обычно я делаю это, нажимая Ctrl + C, но, к сожалению, пара программ на Python сохраняет (zeromq) сокеты открытыми. Это означает, что я должен вручную найти их (я используюlsof -i) и убить их, используя PID.

Поэтому я ищу более простой способ автоматического уничтожения этих процессов Python из оболочки, когда я нажимаю Ctrl + C. Надругой поток здесь на Stackoverflow Я нашел код, который предположительно должен делать то, что мне нужно. Я просто ничего не понимаю в коде и в том, как я могу настроить его под свои нужды.

Кто-нибудь будет так любезен, чтобы помочь мне здесь?

cat >work.py <<'EOF'
import sys, time, signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
for i in range(10):
    time.sleep(1)
    print "Tick from", sys.argv[1]
EOF 
chmod +x work.py

function process {
    python ./work.py $1
}

process one &
wait $!
echo "All done!"

Ответы на вопрос(1)

Ваш ответ на вопрос