/* admind projet SE3 Daemon d'administration Serveur SE3 « wawaChief » olivier.lecluse@crdp.ac-caen.fr ErotoKriTOS <(-_°)> jean-luc.chretien@tice.ac-caen.fr Equipe Tice académie de Caen V 0.1 maj : 17/11/2002 Distribué selon les termes de la licence GPL compilation du binaire : gcc -o admind admind1.c */ #define _GNU_SOURCE #include #include #include #include #include #define OPEN_MAX 256 /* # open files a process may have */ main() { int fd; int i; char str[12]; char ligne [128]; FILE *result; FILE *tbp; openlog("admind_SE3", LOG_PERROR | LOG_PID, LOG_INFO); umask (022); chdir ("/tmp"); // Le daemon passe en arrière plan if (fork() !=0) exit (0); // Creation d'une session setsid(); // Creation d'un fichier lock contenant le n° pid fd = open ("/var/run/admind.pid", O_RDWR | O_CREAT,0640); if (fd < 0) exit (0); if (lockf (fd, F_TLOCK, 0) < 0 ) exit(0); snprintf (str, 12, "%d\n", getpid ()); write (fd, str, strlen (str)); // Fermeture des descripteurs de fichiers // Plus d'affichage des messages stdout, stderr for (i=0; i