Zpracovani signalu procesem
Dalibor Toman
dtoman na fortech.cz
Středa Září 18 16:52:43 CEST 2002
DD,
napsal jsem aplikaci, ktera bezi jako daemon, hlavni proces spousti
nekolik threadu. Hlavni proces instaluje handler na obsluhu
SIGUSR1. Poslu-li pomoci 'kill -SIGUSR1 pid' signal hlavnimu
procesu, stava se, ze i v threadech jsou blokujici operace (recv() a
spol) preruseny (EINTR), pripadne thready zacnou vyvadet divne
veci (segfaulty v mistech kde by k nim dochazet nemelo /*ale to uz tak
vetsinou byva:-) */ atd).
Dotazy:
- je normalni ze zaslani signalu na pid hlavniho procesu ma vliv na
thready? Lze tomu nejak zabranit?
- pokud v threadu signal prerusi recv() muze mit vliv na chovani
threadu pri vstupu do zamklych kritickych sekci (pthread_mutex)?
(pozn: problem s recv() neni problem vyresit pomoci
MSG_NOSIGNAL)
- co muzu a co nesmim v obsluze odchyceneho signalu? (zapisuju do
message logu syslogem)
D. Toman
Další informace o konferenci Linux