Probleme de signaux

Probleme de signaux - C - Programmation

Marsh Posté le 06-12-2005 à 18:36:59    

Bonjour,
 
Voila j'ai un petit probleme .
En très gros, j'ai un serveur qui doit envoyer des signaux à tout un groupe de processus Client.
J'ai donc pensé changer le groupe de chaque client pour être dans celui du serveur.
J'envoie donc les signaux à tout le groupe, en une fois.
Cela fonctionne très bien quand je n'ai que 1 client dans le meme shell que le serveur.
Mais quand j'ai un client qui est dans un autre shell, le processus client ne sait pas se rattaché au groupe du serveur.
D'après le man ,c'est normal  :(  
Il y a t'il une autre solution que de devoir passé par un tableau pour y stocké tout les pid des clients et envoyé le signal à chaqun séparement ??
 
 
Merci d'avance  :jap:  

Reply

Marsh Posté le 06-12-2005 à 18:36:59   

Reply

Marsh Posté le 07-12-2005 à 10:20:15    


Salut,
 

Slay a écrit :

Voila j'ai un petit probleme .


Vi, c'est un cas courant quand on ouvre un nouveau sujet sur ce forum...
 

Slay a écrit :

En très gros, j'ai un serveur qui doit envoyer des signaux à tout un groupe de processus Client.


Hum... on utilise en général les termes "client" et "serveur" dans les applications réseau. Et en technologie réseau, on n'envoie généralement pas de signal à un processus (puisqu'il est suceptible de se trouver sur une autre machine)
Ton problème est plutôt de type "communication inter-processus non liées par une filiation et se déroulants sur une même machine"
 

Slay a écrit :

J'ai donc pensé changer le groupe de chaque client pour être dans celui du serveur.
J'envoie donc les signaux à tout le groupe, en une fois.


Tu dois probablement utiliser "kill(0, no_signal)"
 

Slay a écrit :

Cela fonctionne très bien quand je n'ai que 1 client dans le meme shell que le serveur.
Mais quand j'ai un client qui est dans un autre shell, le processus client ne sait pas se rattaché au groupe du serveur.
D'après le man ,c'est normal  :(


Ca parait effectivement normal. Si le paramètre correspondant au "pid" est mis à 0, ton processus envoyant le "kill" n'a aucune info quand au destinataire du kill. Et ne connaissant que ses fils, il ne peut donc envoyer de signal qu'à ceux-ci...
 

Slay a écrit :

Il y a t'il une autre solution que de devoir passer par un tableau pour y stocker tout les pid des clients et envoyer le signal à chacun séparement ??


Ben non. Et en plus, tu dois t'occuper de la techno de transfert d'info (tableau des pid) entre deux processus indépendants (pipe ou shm ou msg ou socket)
Essaye de télécharger ce document (http://fr.lang.free.fr/cours/Processus_Csyst_v1.0.pdf) voir si tu y trouves ton bonheur...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed