|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Goncharov 2:5020/400 11 Mar 2006 18:55:46 To : Eugene Grosbein Subject : arpwatch signal handling (Was: Учет тpаффика) -------------------------------------------------------------------------------- Hi Eugene Grosbein! On Fri, 10 Mar 2006 23:35:40 +0300; Eugene Grosbein wrote about 'Re: Учет тpаффика': AB>>>>>> Я поставил arpwatch из портов. Hичего не трогал и он нормально AB>>>>>> запускается. EG>>>>> Hа четверке у всех запускается. AB>>>> А почему потом сломали? EG>>> Пока не знаю, не копал. VG>> Возможно, правомернее будет другой вопрос - почему это на четверке он VG>> вдруг работает [хотя не должен]. EG> Почему это не должен? Как любой демонизирующийся процесс, он должен EG> и работает. Вот линуксовый SyBase не демонизируется с точки зрения EG> четверки и получает HUP, от чего и дохнет. В отличие от Oracle EG> на той же четверке. EG> Вопрос именно в том, почему он в 5.x и далее этого не делает. Код у него какой-то, хм.. странный. Он устанавливает все рассматриваемые сигналы: (void)setsignal(SIGINT, die); (void)setsignal(SIGTERM, die); (void)setsignal(SIGHUP, die); на одну процедуру: die(int signo) { syslog(LOG_DEBUG, "exiting"); checkpoint(0); exit(1); } А вот, собственно, фрагмент демонизации: /* Drop into the background if not debugging */ if (!debug) { pid = fork(); if (pid < 0) { syslog(LOG_ERR, "main fork(): %m"); exit(1); } else if (pid != 0) exit(0); (void)close(fileno(stdin)); (void)close(fileno(stdout)); (void)close(fileno(stderr)); #ifdef TIOCNOTTY fd = open("/dev/tty", O_RDWR); if (fd >= 0) { (void)ioctl(fd, TIOCNOTTY, 0); (void)close(fd); } #else (void) setsid(); #endif } В то время, как еще дедушка Стивенс рекомендует использовать последовательность fork(); setsid(); fork(); для надежного и переносимого отцепления от терминала, а TIOCNOTTY в мане на 5.4 вообще помечен как obsolete. Соответственно, по идее надо бы экспериментально проверить, какие сигналы прилетают программе, запускаемой из rc-скриптов. У меня 4-ки под рукой нет -- WBR, Vadim Goncharov. ICQ#166852181 mailto:vadim_nuclight@mail.ru [Moderator of RU.ANTI-ECOLOGY][FreeBSD][http://antigreen.org][LJ:/nuclight] --- slrn/0.9.8.1 on FreeBSD 4.11/i386 * Origin: Nuclear Lightning @ Tomsk, TPU AVTF Hostel (2:5020/400@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/1035967512a09.html, оценка из 5, голосов 10
|