Salut,
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.