[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 /* 2 admind projet SE3 3 Daemon d'administration Serveur SE3 4 5 « wawaChief » olivier.lecluse@crdp.ac-caen.fr 6 ErotoKriTOS <(-_°)> jean-luc.chretien@tice.ac-caen.fr 7 8 Equipe Tice académie de Caen 9 10 V 0.1 maj : 17/11/2002 11 Distribué selon les termes de la licence GPL 12 compilation du binaire : gcc -o admind admind1.c 13 */ 14 15 #define _GNU_SOURCE 16 #include <stdio.h> 17 #include <unistd.h> 18 #include <fcntl.h> 19 #include <limits.h> 20 #include <syslog.h> 21 #define OPEN_MAX 256 /* # open files a process may have */ 22 23 main() { 24 25 int fd; 26 int i; 27 28 char str[12]; 29 char ligne [128]; 30 31 FILE *result; 32 FILE *tbp; 33 34 openlog("admind_SE3", LOG_PERROR | LOG_PID, LOG_INFO); 35 umask (022); 36 chdir ("/tmp"); 37 38 // Le daemon passe en arrière plan 39 if (fork() !=0) exit (0); 40 // Creation d'une session 41 setsid(); 42 43 // Creation d'un fichier lock contenant le n° pid 44 fd = open ("/var/run/admind.pid", O_RDWR | O_CREAT,0640); 45 if (fd < 0) exit (0); 46 if (lockf (fd, F_TLOCK, 0) < 0 ) exit(0); 47 snprintf (str, 12, "%d\n", getpid ()); 48 write (fd, str, strlen (str)); 49 50 // Fermeture des descripteurs de fichiers 51 // Plus d'affichage des messages stdout, stderr 52 for (i=0; i<OPEN_MAX; i++) close (i); 53 54 while(1) { 55 // DEBUG 56 // printf ("admind in work ;-)\n"); 57 tbp = fopen("/home/remote_adm/admin.sh","r"); 58 if (tbp != NULL) { 59 fclose(tbp); 60 // DEBUG 61 // printf ("presence admin.sh ;-)\n"); 62 63 // Analyse syntaxique du script admin.sh 64 // A FAIRE !! 65 66 // Execution de la tache d'administration 67 result = popen ("/home/remote_adm/admin.sh","r"); 68 while (fgets(ligne, 127, result)!=NULL) { 69 // Redirection des sorties admin.sh vers syslog 70 syslog (LOG_INFO, ligne,"\n"); 71 } 72 pclose(result); 73 74 // Effacement du fichier admin.sh 75 remove ("/home/remote_adm/admin.sh"); 76 // Ecriture d'un message syslog de Fin d'execution 77 syslog (LOG_INFO, "Fin execution admin.sh"); 78 } 79 sleep(1); 80 } 81 closelog (); 82 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |