Wie bricht man alle Prozesse ab, die durch ein Shell-Skript bei Strg + C geöffnet wurden?

Ich habe ein paar Python-Skripte, die ich zusammen mit einem Shell-Skript wie folgt beginne:

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

Seit ich mich entwickle, möchte ich diese Prozesse oft stoppen. Normalerweise drücke ich dazu Strg + C, aber leider lassen ein paar Python-Programme die (Null-Q-) Sockets offen. Das heißt, ich muss sie dann manuell finden (benutze ichlsof -i) und töte sie mit der PID.

Daher suche ich nach einer einfacheren Möglichkeit, diese Python-Prozesse aus der Shell heraus automatisch zu beenden, wenn ich Strg + C drücke. Aufein weiterer Thread hier auf Stackoverflow Ich habe einen Code gefunden, der angeblich tun soll, was ich brauche. Ich verstehe einfach nichts über den Code und wie ich ihn an meine Bedürfnisse anpassen kann.

Wäre jemand so nett, mir hier zu helfen?

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!"

Antworten auf die Frage(1)

Ihre Antwort auf die Frage