From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <4380DD0B.9050400@nm.ru> Date: Sun, 20 Nov 2005 22:31:07 +0200 From: Artem User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050719) X-Accept-Language: en-us, en MIME-Version: 1.0 To: ALT Linux Sisyphus discussion list Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit Subject: [sisyphus] =?koi8-r?b?08/axMHOycUgxMXNz87BLCDQxdLFzsHQ0sHXzMXO?= =?koi8-r?b?ycUgc3RkZXJyIMkgaW5pdGxvZw==?= X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Nov 2005 20:32:00 -0000 Archived-At: List-Archive: List-Post: Доброго времени суток! Не знаю - это в Сизифе так - или нет (под рукой других дистрибутивов нет). Имелась программа, выводившая в процессе работы некую отладочную и просто - информацию о работе. Добавил в нее функционал работы в режиме демона (fork + setsid). При запуске в консоли - все ок, сообщения о ходе работы "выплевывались" на консоль. Сделал скрипт в init.d, стартую - через пару секунд работы программа безследно умирает. Заметил, что скорость "умирания" зависела от количества выводимой ею информации. Так же обратил внимание, что запуск с помощью стартап-скриптов идет через initlog -c "команда" . if (make_daemon) { switch (pid=fork()) { case 0: setsid(); write_pidfile(); DBG("process pid: %d\n", getpid()); ret=program_run(); break; Все заработало нормально только тогда, когда вывод дескрипторов 0,1,2 был перенаправлен в /dev/null Типа нижеприведенного: if (make_daemon) { switch (pid=fork()) { case 0: setsid(); write_pidfile(); DBG("process pid: %d\n", getpid()); if ((fd = open("/dev/null", O_RDWR, 0)) >= 0) { (void) dup2(fd, 0); (void) dup2(fd, 1); (void) dup2(fd, 2); if (fd != 2) (void) close(fd); ret=program_run(); break; Почему initlog прибивал процесс, выводящий много информации в stdout ? Правильное ли это исправление - или есть более правильные способы реализации? P.S. Не знаю - может это уже вопрос для devel@ - но что-то на сайте написано, что это - "закрытый список рассылки" ? Rgds, Artem.