Ich muss richtig mit sigchld umgehen. Wie kann ich es mit meinem vorhandenen Code verwenden? Im Moment kann ich nicht auf den Child-Prozess warten, es sei denn, ich verwende 0 statt WNOHANG|WUNTRACED
.
Wenn ich den Schlaf entfernen, dann wird der Elternteil ausgeführt. 1. Warum?
Hier ist ein Anfang (aber lesen Sie weiter unten):
%Vor% Natürlich ist das alles sinnlos . Wenn der Elternteil einfach SIGCHLD
ignoriert, werden die Kinder automatisch geerntet und verwandeln sich nicht in Zombies.
Zitieren TLPI :
Das explizite Festlegen der Disposition von SIGCHLD auf SIG_IGN verursacht alle Kind-Prozess, der später beendet wird, um sofort entfernt zu werden aus dem System anstatt in einen Zombie umgewandelt zu werden .
So etwas wie das sollte den Trick für Sie tun:
%Vor%