kenumdrum ARM THE HOMELESS | bonjour,
j'ai le code suivant :
Code :
- int main(void)
- {
- int fd;
- int status;
- int pid;
- FILE *fp;
- /* Le processus se dédouble, et le père se termine */
- if (fork() != 0)
- exit(EXIT_SUCCESS);
- /* le processus fils devient le leader d'un nouveau
- groupe de processus */
- setsid();
- /* le processus fils crée le processus démon, et
- se termine */
- if (fork() != 0)
- exit(EXIT_SUCCESS);
- /* le démon déménage vers la racine */
- chdir("/" );
- /* l'entrée standard est redirigée vers /dev/null */
- fd = open("/dev/null", O_RDWR);
- dup2(fd, 0);
- close(fd);
- /* et les sorties vers /dev/console */
- fd = open("/dev/console", O_WRONLY);
- dup2(fd, 1);
- dup2(fd, 2);
- close(fd);
- while(1)
- {
- switch(pid=fork())
- {
- case (pid_t)-1:
- perror("Création de processus" );
- exit(2);
- case (pid_t)0:
- /* on est dans le processus fils */
- if( execl("./home/user/snmp","snmp",0) == -1 )
- {
- printf("erreur\n" );
- }
- default:
- wait(&status);
- printf("Recherche finie!\n" );
- }
- }
- }
|
le probleme qui se pose est que le demon n'execute pas le programme appele par la fonction execl?
je sais pas trop d'ou cela peut venir. J'ai mis des droits en lecture, ecriture,execution pour tout le monde.
donc si l'un d'entre vous a une idee elle est la bien venu.
merci d'avance A+
ps os : linux fedora Message édité par kenumdrum le 18-05-2004 à 15:34:24
|