Il comportamento predefinito di SIGCHLD è scartare il segnale, ma il processo figlio viene mantenuto come uno zombi finché il genitore non chiama wait() (o una variante) per ottenere il suo stato di terminazione.
Ma se chiami esplicitamente sigaction() con la disposizione SIG_IGN , che fa sì che non trasformi il bambino in uno zombi:quando il bambino esce viene raccolto immediatamente. Vedi https://stackoverflow.com/a/7171836/1491895
Il modo POSIX per ottenere questo comportamento è chiamare sigaction con handler = SIG_DFL e flags contenente SA_NOCLDWAIT . Questo è in Linux dalla 2.6.