Ignorovane SIGCHLD a problem s returncodem

Ladislav Vaiz spam na nagano.cz
Úterý Srpen 14 08:27:22 CEST 2007


No a nemůžete nastavit pro SIGCHLD SIG_DFL? Pokud by to radiusu vadilo, 
tak ho můžete zase vrátit zpátky.
Láďa

M. Vancl napsal(a):
> Zdravim vespolek !
>
> Narazil jsem na problem s vyhodnocenim navratoveho kodu a nevik kudy dal. Konkretne: 
> Z freeradius serveru volam prostrednictvim jeho modulu rlm_perl (to je embedded interpreter) externi program:
> ...
> $output=`program`;
> $rc=$?;
> ...
> Hodnota $? je ale po skonceni vzdy -1 a $! je "No child processes", Volany program se spolehlive provedl (vratil vystup) a skoncil normalne.
> Tusim, ze problem asi souvisi s nastavenim zpracovani SIGCHLD v radiusd na SIG_IGN (nedokazu overit), a odhaduju, ze se tim asi ma branit vzniku zombies.
> Nastaveni se zrejme pres exec prenasi i do vyvolaneho shellu a v nem spusteneho programu, takze mi nepomuze ani:
>
> $output=`program; echo RC=$?`
>
> a nasledne zpracovani textoveho vystupu - vraci se vzdy "RC=0", i kdyz jako program spustim treba /bin/false.
>
> Chovani urcite souvisi s radiusd resp. rlm_perl, protoze totez pustene mimo radiusd funguje uspokojive.
>
> Budu velice vdecny za kazdou radu.
>
> M. Vancl
>
> jadro: 2.6.8-24-smp
> Perl: 5.8.5
> freeradius: 1.0.0
> system SuSE 9.2
> Perl je multithredovy a radiusd pro spousteni perlovych skriptu thready skutecne tvori, ale netusim, jestli to muze mit vliv a ani nevim, jak to pripadne vypnout.
>   





Další informace o konferenci Linux