Vérifier que mon fils est en vie avant de lui donner des ordres
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Hello,
j'ai un semblant de serveur qui fait un fork(), et qui gère dans un processus fils les tache demander par le client qui viens s'y connecter tout bêtement.
le truc c’est que j'aimerais que mon serveur soit en mesure de s'assure en tout temps que son processus fils et donc son client est toujours vivant. je gère cela avec deux terminaux pour le moment l'un serveur l'autre client, si je fait ctrl+c sur mon client, mon serveur continue de le considérer en vie.
utiliser signal peut être ? mais comment ?
merci de votre aide
j'ai un semblant de serveur qui fait un fork(), et qui gère dans un processus fils les tache demander par le client qui viens s'y connecter tout bêtement.
le truc c’est que j'aimerais que mon serveur soit en mesure de s'assure en tout temps que son processus fils et donc son client est toujours vivant. je gère cela avec deux terminaux pour le moment l'un serveur l'autre client, si je fait ctrl+c sur mon client, mon serveur continue de le considérer en vie.
utiliser signal peut être ? mais comment ?
merci de votre aide
A voir également:
- Vérifier que mon fils est en vie avant de lui donner des ordres
- Verifier compatibilite windows 11 - Guide
- Vérifier un lien avant de cliquer - Guide
- Schéma branchement autoradio couleur fils - Forum Autoradio
- Vérifier si mot de passe piraté - Guide
- Avant browser - Télécharger - Navigateurs
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir,
si je comprends bien, tu as sur ton serveur un processus parent et des processus fils.
chaque processus fils est en communication avec un processus exécuté sur une poste client.
que se passe-t-il quand tu arrêtes le processus client? le processus fils s’arrête-t-il sur le serveur, sans que le processus parent le remarque?
en d'autres mots, quel est ton soucis? le fait que le parent ne se rende pas compte que le fils est mort, ou bien que le fils ne se rende pas compte que le client est parti?
si je comprends bien, tu as sur ton serveur un processus parent et des processus fils.
chaque processus fils est en communication avec un processus exécuté sur une poste client.
que se passe-t-il quand tu arrêtes le processus client? le processus fils s’arrête-t-il sur le serveur, sans que le processus parent le remarque?
en d'autres mots, quel est ton soucis? le fait que le parent ne se rende pas compte que le fils est mort, ou bien que le fils ne se rende pas compte que le client est parti?
si un client ce connecte, mon serveur fait un fork pour gérer ce dernier.
client et serveur peuvent alors s’échanger message/cmd l'uns avec l'autre.
le tout ce termine quand l'utilisateur tape "exit" dans le terminal du client, car avec cette commande mon serveur comprend que le client viens d’être shutdown proprement.
sauf que si durant l’exécution du client l'utilisateur décide de stopper l’exécution en mode bourrin avec un ctrl+c mon serveur va ce mettre a attendre indéfiniment car il ne comprendra pas que le client a était shutdown.
j'ai besoin d'un système qui vérifie l’existence de mon processus fils, que ce soit avec son pid, son fd ou autre. j'ai entendue parler de signal mais je sait pas en quoi il peut m'aider .
pour répondre a tes questions : mon problème c'est que mon serveur (processus parent)
ne ce rend pas compte du décès du processus fils si ce dernier a était kill avec un ctrl+c autrement pas de problème.
j'espere etre assez claire. merci de ton aide
il me semble que ce n'est pas le processus fils qui est killé, mais le processus client.
le kill est fait sur le client, et je pense que cela ne cause pas automatiquement la mort du processus fils sur le serveur.
tu aimerais bien que la mort du processus client cause la mort du processus fils, et que le parent s'en rende ensuite compte.
moi, je suspecte que le processus fils survit au processus client. qu'en penses-tu?
je m’était imaginer bêtement que le processus fils crée dans le serveur me servais de support pour le client et donc qu'il n'y avait que 2 processus en marche (le pere et le fils) ...
mais alors comment faire pour que la mort de mon client tue mon fils en même temps ? (sans oublié que il s’agit ici d'une mort subite ctrl+c) , peut ont rattaché deux processus entre eux pour leur faire subir le même sort ?
j'attend tes idée avec impatience. merci.