Newsgroup: it.comp.reti.ip-admin
Titolo: Httpd & Zombie

Ho un problema... cerchero' di spiegarmi al meglio.
Ho installato il kernel 2.0.0 ed uso Apache 1.1.1 quale httpd.
VI spiego la situazione: quando lancio httpd mi trovo facendo ps ad avere
un httdp padre e cinque figli.
Io ho scritto un programma (P1) che quando e' lanciato chiama a sua volta
un secondo programma (P2); io NON so come P1 lanci P2 in quanto il
caricamento e' svolto dal costruttore di un oggetto che dichiaro nel mio
programma P1.
Qual e' il mio problema è il seguente: quando il demone "figlio" lancia P1
che lancia P2, P1 rimane "zombi" e ci mette un po' a morire e finche'
questo non accade il demone httpd non "chiude" il socket col browser il
quale non visualizza nulla finché questa condizione non si verifica;
poiche' passano 10/12 secondi questo calo di prestazioni e' insostenibile
per la mia applicazione.
Rimedi provati:
* Ho provato a fare il flush dello standard out di P1
* Ho provato a modificare il server:
Infatti mi hanno detto che un processo e' zombi quando e' morto ma non ha
ancora avvisato il padre della propria morte. quindi nel sorgente del
server ho fatto si che non usi soltanto "exec" per lanciare il cgi (nel mio
caso P1) ma il demone si "forka" ed il padre rimane in attesa con wait4 del
figlio ...
ma nulla di tutto ciò ha funzionato....
Aiuto !!!
Ciao,
 Davide

 ma nulla di tutto ci=F2 ha funzionato....
Il problema degli zombie puo' essere risolto senza troppi patemi d'animo =
e nottate insonni sui sistemi UNIX derivati da System V. Infatti e' =
documentato che chiamando una
signal(SIGCHLD, SIG_IGN);
tutti i processi 'appesi' vengono chiusi. Sembrerebbe una chiamata del =
tutto inutile (ecco perche' non ci pensa mai nessuno), in quanto non fa =
altro che far ignorare il signal SIGCHLD, comportamento gia' di =
default...
Per quanto riguarda i sistemi derivati dal BSD UNIX le cose si =
complicano; infatti bisogna intercettare tutti i SIGCHLD circolanti ed =
eseguire una wait() per ogni occorrenza. Il problema e' che SIGCHLD =
spesso e volentieri interrompe l'esecuzione delle funzioni in atto che, =
pertanto, escono con un -1. Sapendo che si tratta di un falso errore, e' =
necessario rilanciarle subito dopo la wait()... complicando non poco il =
software di gestione.
Spero di esserLe stato utile.
Chiunque trovi utile questo intervento adesso dovrebbe sentirsi in =
dovere di aiutare me :-) Ho un Compaq Prosigna 500 con Linux 2.0.0. =
Attualmente ho installato 32 Mb di RAM in attesa di ulteriori 32 Mb. Il =
fatto e' che in nessun modo riesco a far vedere piu' di 16 Mb al kernel!
Le ho tentate tutte... compreso passare un no_hlt al kernel stesso.
Qualcuno ha idea di che cosa io possa fare?
Marco Fanciulli
fanc...@sacis.it
network...@sacis.it

 wrote:
 Qsi> dovere di aiutare me :-) Ho un Compaq Prosigna 500 con Linux 2.0.0. 
 Qsi> Attualmente ho installato 32 Mb di RAM in attesa di ulteriori 32 Mb. Il 
 Qsi> fatto e' che in nessun modo riesco a far vedere piu' di 16 Mb al kernel!
 Qsi> Le ho tentate tutte... compreso passare un no_hlt al kernel stesso.
 Qsi> Qualcuno ha idea di che cosa io possa fare?
	Passa a lilo 32M (se ben ricordo la sintassi).
-- 
Have a nice day!
~
~     \\||/
:wq   (^_-)

Qualcuno ha idea di che cosa io possa fare?
Il kernel e' configurato per >16 Mb, e il BIOS non ha memory holes sul
16mo mega, e il test li vede?
Leonardo
".signature": bad command or file name

Questo ha risolto il problema per me.
 Dovresti controllare l'opzione "Hole 15-16 MB" nel Bios com'e' settata.
 Puo' dipendere da quello. Comunque la soluzione di passare i parametri al
 LILO funziona perche' i parametri vengono passati al kernel. 
-- 
   ol     Carrer Yuri   Pubblicita': usa \documentstyle{athenaslide}  
   |--	  Tel: 0421/211239 *new*     e non usare Power Point :-)
  000 *** WARNING ***   
http://www.dei.unipd.it/~carrery/
http://www.geocities.com/TheTropics/1797/
 
http://www.alfa.it/
 :) *new!*

 
nel mio /etc/lilo.conf ho messo:
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
append="mem=32M"
Questo ha risolto il problema per me.
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :: Mauro Motta ::::::::::::::::::  mailto:
M.M...@hsr.it
 ::       
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :: Istituto Scientifico H San Raffaele ::::::::::::::::::::
    :: Sistemi Informativi  :::::::::::::::::::::::::::::::::::
    :: via Olgettina 60  ::::::  voice        +39.2.26432058 ::
    :: I-20132 MILANO  ::::::::::  fax        +39.2.26432098 ::
    :::::::::::::::::::::::::::::   
http://www.hsr.it/~motta
 ::
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::