Debian4-RC3 (Intel/x86)
Здравствуйте, у меня возникла такая проблема демон не может отделиться от родительского процесса, весь код брал из "Linux Daemon HOWTO". Что самое интересное это не первый демон которого я делаю но проблема возникла впервые. На другом сервере этот демон работает успешно. К томуже все старые демоны что были на этом сервере перестали работать подскажите в чем может быть причина где рыть.
Привожу пример кода который также не работает на серваке, а на других работает:
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <syslog.h>
#include <string.h>
int main(void) {
FILE *fpo;
/* Наши ID процесса и сессии */
pid_t pid, sid;
/* Ответвляемся от родительского процесса */
pid = fork();
if (pid < 0) {
exit(EXIT_FAILURE);
}
/* Если с PID'ом все получилось, то родительский процесс можно завершить. */
if (pid > 0) {
exit(EXIT_SUCCESS);
}
fputs("Go next\n", fpo);
/* Изменяем файловую маску */
umask(0);
/* Здесь можно открывать любые журналы */
/* Создание нового SID для дочернего процесса */
sid = setsid();
//fputs(""+sid+"\n", fpo);
if (sid < 0) {
/* Журналируем любой сбой */
exit(EXIT_FAILURE);
}
/* Изменяем текущий рабочий каталог */
if ((chdir("/")) < 0) {
/* Журналируем любой сбой */
exit(EXIT_FAILURE);
}
/* Закрываем стандартные файловые дескрипторы */
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
/* Специфичная для демона инициализация проходит тут */
/* Большой Цикл */
while (1) {
fpo = fopen("/var/www/html/_g7_dev/1_18e/log/deamon.log", "a");
fputs("Script worked\n", fpo);
sleep(5); /* ждем 30 секунд */
fclose(fpo);
}
exit(EXIT_SUCCESS);
}
По не обходимости предоставлю все логи и конфиги, пока не монимаю что именно надо