emitaire
Messages postés4Date d'inscriptionjeudi 9 novembre 2006StatutMembreDernière intervention 4 juillet 2008
-
3 juil. 2008 à 17:07
emitaire
Messages postés4Date d'inscriptionjeudi 9 novembre 2006StatutMembreDernière intervention 4 juillet 2008
-
4 juil. 2008 à 13:00
Bonjour,
J'ai developpez un petit programme ecoute le port 143 (IMAP pour l'arrivée des mails), je compile mon programme pour avoir un .exe que je lance pour tester. Jusque là tout marche trés bien.
Je veux a présent developper un WatchDog qui veille au relancement de cet exe si ce derneir crache. Donc une sorte de moniteur qui le ralance. Le problème c'est que je veux que ce watchDog soit valable sous windows mais aussi sous linux car mon listener l'est.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 3 juil. 2008 à 18:05
Tu peux développer une autre application qui tournera en même temps que ton prog et qui vérifiera sa présence de temps en temps; en cas de plantage elle le relance.
emitaire
Messages postés4Date d'inscriptionjeudi 9 novembre 2006StatutMembreDernière intervention 4 juillet 2008 3 juil. 2008 à 18:15
Trés bonne réponse.
Oui mais justement, il faut savoir quel methode utiliser en c++?? comment recuperer le pid du processus qui est derriere mon exe pour le controller en c++?? comment relancer ce processus ?? c'est a ces questions que j'ai besoin d'une réponse...
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 3 juil. 2008 à 21:14
Je ne sais pas s'il existe de librairies portables permettant de faire cela. Au pire tu peux faire une version une version Windows et une version Linux avec les APIs respectives non?
Vous n’avez pas trouvé la réponse que vous recherchez ?
emitaire
Messages postés4Date d'inscriptionjeudi 9 novembre 2006StatutMembreDernière intervention 4 juillet 2008 4 juil. 2008 à 13:00
Bon voilà je crois que j'ai trouvé une réponse,mais c'est valable que sous windows: Je recupere tout les exe qui sont en cours sur ma machine, et je compare chaque exe avec le nom de celui que je veux controler, et si je ne le retrouve plus ,je le relance comme n'importe quel autre .exe, voici le code:
bool
process_exists(string monProcess){
DWORD processes[200], nb_processes;
char process_name[100];
int i;HANDLE hprocess;
EnumProcesses(processes,
sizeof(processes),&nb_processes);
//On teste tous les processus pour voir si leur nom correspond