Функция создания демона
int daemonize()
{
int pid = fork();
if (pid == -1) // ошибка
{
printf("Start Daemon Error: %s\n", strerror(errno));
return 1;
}
else if (!pid) // если это потомок
{
umask(0);
setsid();
chdir("/");
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
return 0;
}
else // если это родитель
{
// завершим процесс
exit(0);
}
}
Использование
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/stat.h>
int main(int argc, char** argv)
{
//Создаем из процесса демона
int res = daemonize();
if(res)
return -1;
//Основной код программы ...
return 0;
}
Комментариев нет:
Отправить комментарий