|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alex Semenyaka 2:461/640.640 12 Mar 2006 18:13:30 To : Vadim Goncharov Subject : arpwatch signal handling (Was: Учет тpаффика) -------------------------------------------------------------------------------- 11 Mar 06 17:55, you wrote to Eugene Grosbein: VG> Он устанавливает все рассматриваемые сигналы: VG> (void)setsignal(SIGINT, die); VG> (void)setsignal(SIGTERM, die); VG> (void)setsignal(SIGHUP, die); VG> на одну процедуру: VG> VG> die(int signo) VG> { VG> VG> syslog(LOG_DEBUG, "exiting"); VG> checkpoint(0); VG> exit(1); VG> } HUP надо убрать отсюда... И сделать SIG_IGN. И всё. Use send-pr, Luke. VG> А вот, собственно, фрагмент демонизации: VG> VG> /* Drop into the background if not debugging */ VG> if (!debug) { VG> pid = fork(); VG> if (pid < 0) { VG> syslog(LOG_ERR, "main fork(): %m"); VG> exit(1); VG> } else if (pid != 0) VG> exit(0); VG> (void)close(fileno(stdin)); VG> (void)close(fileno(stdout)); VG> (void)close(fileno(stderr)); VG> #ifdef TIOCNOTTY VG> fd = open("/dev/tty", O_RDWR); VG> if (fd >= 0) { VG> (void)ioctl(fd, TIOCNOTTY, 0); VG> (void)close(fd); VG> } VG> #else VG> (void) setsid(); VG> #endif VG> } Hичего страшного. VG> В то время, как еще дедушка Стивенс рекомендует использовать VG> последовательность fork(); setsid(); fork(); для надежного VG> и переносимого отцепления от терминала, Рекомендует (если есть setsid() - иначе TIOCNOTTY нужен). Hо во FreeBSD вполне будет работать и так. VG> а TIOCNOTTY в мане на 5.4 вообще помечен как obsolete. Да. А откуда следует, что код с TIOCNOTTY отрабатывается? Этот символ определён? VG> Соответственно, по идее надо бы экспериментально проверить, какие VG> сигналы прилетают программе, запускаемой из rc-скриптов. Уже многократно писалось, какие. Alex --- IMHO в последней инстанции * Origin: ...можжевеловых... (2:461/640.640) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/392944142dc7.html, оценка из 5, голосов 10
|