Jump to content
Sign in to follow this  
HamWay

Debian: crash daemon

Recommended Posts

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);
}

По не обходимости предоставлю все логи и конфиги, пока не монимаю что именно надо

Share this post


Link to post
Share on other sites

Можно прогнать через strace, но если такое со всем софтом - разбираться надо в системе, а не в программе. Например, для начала прогнать fsck на всех файловых системах...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...