2016-05-31 10 views
3

Ich muss erkennen, wenn einer meiner Hintergrundprozesse beendet wird. Daher habe ich eine Falle installiert. run_gui und run_ai1 sind einfache exec Funktionen.SIGCHLD nicht geliefert, wenn ein Prozess beendet

Wenn ich die GUI schließe, passiert nichts. Der Befehl echo foo wird nur ausgeführt, wenn ich Strg + C drücke.

Warum vermisse ich die SIGCHLD?

+0

Das ändert nichts. Ist es wichtig, dass der 'read' auf irgendeine Eingabe wartet ...? – marmistrz

Antwort

3

Nicht interaktive Shells aktivieren die Jobsteuerung nicht standardmäßig. Sehen Sie, wenn setzt "Set -o-Monitor" am Anfang des Skripts produziert die Ergebnisse, die Sie wollen.

Quelle: Chet Ramey, GNU Bash Maintainer

+0

Mein Shabang ist '#!/Bin/bash -m'. Also sollte das nicht der Fall sein – marmistrz

+0

Ich schlage vor, es zu testen. – Cyrus

+0

Das Ergebnis ist genau das gleiche. – marmistrz

Verwandte Themen