Bonjour,
Je viens de remarquer un phénomène bizarre qui me laisse perplexe.
J'ai une application multithread en C++ sous linux dont l'un des thread exécute des procédures secondaires de manière périodique. L'une de ces procédure démarre un démon si il n'a pas encore été démarré. Le démon est bien démarré mais il m'est impossible de le killer après coup.
Threads:
____________ thread principal
|________ thread secondaire (qui lance le démon)
...
|________ autre thread
Démarrage du démon:
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part system(telnetd); // par exemple
Est ce que ce problème vous dit quelque chose? Est-il impossible d’exécuter un programme depuis un autre thread? Est-ce que je fais quelque chose de travers?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 int pid = fork(); if (pid < 0) { std::cout << "Fail to fork." << std::endl; } else if (pid == 0) { char *argv[] = { "telnetd", NULL }; execv("/usr/bin/telnetd", argv); _exit(EXIT_FAILURE); }
Partager