HamWay Опубликовано 20 декабря, 2008 Жалоба Поделиться Опубликовано 20 декабря, 2008 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); } По не обходимости предоставлю все логи и конфиги, пока не монимаю что именно надо Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 20 декабря, 2008 Жалоба Поделиться Опубликовано 20 декабря, 2008 Можно прогнать через strace, но если такое со всем софтом - разбираться надо в системе, а не в программе. Например, для начала прогнать fsck на всех файловых системах... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.