OVH Cloud OVH Cloud

dépassement de ressources IPC

3 réponses
Avatar
aglae
bonsoir,

je travaille sur un script usant abondamment de ressources
partagées (shm et sem) entre différents sous-processus (fork).

Au bout de plusieurs exécution, il n'y a plus de ressources IPC
dispo, elles ne sont pas supprimées en fin d'exécution (je suis
sous linux)

comment puis-je les supprimer proprement en sortie de
programme (pas avec ipcrm sous linux) ?

merci

agla agla aglae ...

3 réponses

Avatar
Pim
Le Sat, 12 Jul 2003 21:45:28 +0200,
aglae disait ceci :
bonsoir,


De même.
je travaille sur un script usant abondamment de ressources
partagées (shm et sem) entre différents sous-processus (fork).
Hum...


Au bout de plusieurs exécution, il n'y a plus de ressources IPC
dispo, elles ne sont pas supprimées en fin d'exécution (je suis
sous linux)
Ok.

comment puis-je les supprimer proprement en sortie de
programme (pas avec ipcrm sous linux) ?


Je ne connais pas suffisamment la gestion des ressources en perl
(Moi aussi je suis sous Linux)
Le module est IPC.pm :
il suffit de regarder dans ce fichier les routines définies et si tu
n'en as pas une qui ferait ce que tu veut.

Pour le cas ou tu n'as pas vu, il y a la documentation perlipc.pod que
tu trouves sur internet en français.

Si tu as w3m tu peut faire :

pod2html perlipc.pod | w3m -T text/html pour le visualiser rapidement.

Perso j'ai plusieurs pod en français dont celui-ci.

Tu peut aussi surement trouver des versions HTML en français
directement.

Alors bon courrage car les IPCs c'est pas simple.


merci
Mais de rien!

agla agla aglae ...


Avatar
Pim
Le Sat, 12 Jul 2003 21:45:28 +0200, aglae disait ceci :
bonsoir,

je travaille sur un script usant abondamment de ressources
partagées (shm et sem) entre différents sous-processus (fork).

Au bout de plusieurs exécution, il n'y a plus de ressources IPC
dispo, elles ne sont pas supprimées en fin d'exécution (je suis
sous linux)

comment puis-je les supprimer proprement en sortie de
programme (pas avec ipcrm sous linux) ?

merci

agla agla aglae ...



Heu correction : les modules sont dans un répertoire IPC
mais c'est Msg.pm et Semaphore.pm selon ce qu'on veut gérer.

Pour une aide directe et rapide en anglais et mode console :

1 ) Se placer dans un répertoire dans lequel tu as
les droits en écriture.

2 ) pod2html `locate Msg.pm` | w3m -T text/html


Idem pour Semaphore.pm.

J'ai cru voir une sub qui delete.

Alors bon courage...

(w3m c'est comme lynx mais mieux présenté.)

Avatar
Gilles POLART-DONAT
Bonjour,

je travaille sur un script usant abondamment de ressources
partagées (shm et sem) entre différents sous-processus (fork).

Au bout de plusieurs exécution, il n'y a plus de ressources IPC
dispo, elles ne sont pas supprimées en fin d'exécution (je suis
sous linux)

comment puis-je les supprimer proprement en sortie de
programme (pas avec ipcrm sous linux) ?


shmctl avec le flag IPC_RMID devrait aider. Idem pour les sémaphores
(semctl).
Attention, il faut que tous les processus se soient détachés de la zone
mémoire.

Gilles Polart-Donat
Alixen