From: Simone Piccardi Date: Thu, 20 Sep 2001 12:36:18 +0000 (+0000) Subject: Finito coi lupi mannari. Anzi no, erano zombie, ma tanto piu` o meno siamo X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=commitdiff_plain;h=fffa3e611bff16a0d896c73bbb2d50b2fce6a3fa;p=gapil.git Finito coi lupi mannari. Anzi no, erano zombie, ma tanto piu` o meno siamo li... --- diff --git a/prochand.tex b/prochand.tex index a4c126f..2283fe4 100644 --- a/prochand.tex +++ b/prochand.tex @@ -685,10 +685,29 @@ dei figli in stato di zombie: alla sua terminazione infatti tutti i suoi figli vengono ereditati (compresi gli zombie) verranno adottati da \cmd{init}, il quale provvederà a completarne la terminazione. +Si tenga presente infine che siccome gli zombie sono processi già terminati, +non c'è modo di eliminarli con il comando \cmd{kill}; l'unica possibilità è +quella di terminare il processo che li ha generati, in modo che \cmd{init} +possa adottarli e provvedere a concludere la terminazione. + \subsection{Le funzioni \texttt{wait} e \texttt{waitpid}} \label{sec:proc_wait} +Come accennato la funzioni che permettono di leggere lo stato di uscita di un +processo, e di completarne il processo di terminazione sono \func{wait} e +\func{waitpid}, il loro prototipo è: +\begin{functions} +\headdecl{sys/types.h} +\headdecl{sys/wait.h} +\funcdecl{pid\_t wait(int * status)} +\funcdecl{pid\_t waitpid(pid\_t pid, int *status, int options)} +\end{functions} + + +Come abbiamo appena visto una delle azioni prese dal kernel alla terminazione +di un processo è quella di salvarne lo stato e mandare un segnale di +\macro{SIGCHLD} al padre (torneremo su questa parte in \secref{sec:sig_xxx}). \subsection{Le funzioni \texttt{exec}}