Daemon
funus.net
Daemon w systemach uniksowych to proces działający w tle.
Najprotszy daemon można utworzyć następująco (program w języku C, testowany w systemie Debian Linux 4.0).
#include <errno.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> void daemon_proc() { /* Zrób coś pożytecznego */ } int main(int argc, char** argv) { pid_t pid; /* fork() w celu utworzenia procesu potomnego */ switch (pid = fork()) { case -1: /* Błąd */ fprintf(stderr, "fork(): %s\n", strerror(errno)); return EXIT_FAILURE; case 0: /* Proces potomny */ /* Zamknij pliki standardowego wejścia i wyjścia */ close(STDIN_FILENO); close(STDOUT_FILENO); close(STDERR_FILENO); daemon_proc(); /* tu będzie właściwa funkcjonalność */ return EXIT_SUCCESS; default: /* Proces rodzicielski po utworzeniu procesu potomnego */ return EXIT_SUCCESS; } } |
