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