Vérifier que mon fils est en vie avant de lui donner des ordres
Résolu/Fermé
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 un lien - Guide
- Qu'est ce qu'une femme fait 3 fois par jour et un homme une fois dans sa vie - Forum Loisirs / Divertissements
- Copains d'avant qui a visité mon profil - Forum Facebook
- Schéma branchement autoradio couleur fils - Forum Autoradio
- Triez cette liste par ordre alphabétique des villes et par note de la meilleure à la moins bonne. quel mot est formé par les 8 premières lettres de la colonne code ? ✓ - Forum Excel
1 réponse
yg_be
Messages postés
23473
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 février 2025
Ambassadeur
1 568
27 févr. 2017 à 21:42
27 févr. 2017 à 21:42
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?
27 févr. 2017 à 22:59
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
27 févr. 2017 à 23:33
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?
28 févr. 2017 à 00:50
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.
28 févr. 2017 à 09:14
28 févr. 2017 à 09:57