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.