4.17 Gestion des IPCS

De UnixWiki
Aller à : navigation, rechercher

IPCS

Tout afficher:

 # ipcs
 IPC status from /dev/mem as of mer 16 mai 14:53:58 DFT 2012
 T        ID     KEY        MODE       OWNER    GROUP
 Message Queues:
 q         0 0x4107001c -Rrw-rw----     root   printq
Shared Memory: m 404750336 0xffffffff --rw------- root sys m 1048577 0x78000021 --rw-rw-rw- root system m 1048578 0x7800001e --rw-rw-rw- root system m 811597827 0xffffffff --rw------- root sys m 746586116 0xffffffff --rw------- root sys m 2097157 0xffffffff --rw------- root sys m 479199238 0xffffffff --rw------- root sys m 2097159 0xffffffff --rw------- root sys m 479199240 0xffffffff --rw------- root sys m 2097161 0xffffffff --rw------- root sys Semaphores: s 3145728 0xffffffff --ra------- root system s 1 0x620122ea --ra-r--r-- root system s 2 0x010121b1 --ra------- root system s 3 0x0101c6e7 --ra-ra-ra- root sys s 98566163 0xa1003186 --ra-ra-ra- root sys

Afficher les sémaphores:

 # ipcs -s

Afficher les messages

 # ipcs -q

Afficher les mémoires partagé

 # ipcs -m

Suppression d'un IPCS

 ipcrm -m $IPC_ID

Suppression d'un IPCS particulier

La méthode la plus simple pour visualiser les process attchées à une shared memory est la suivante :

 # ipcs -ma
 IPC status from /dev/mem as of Fri May 28 14:12:49 DFT 2004
 T           ID          KEY         MODE         OWNER    GROUP  CREATOR
 CGROUP NATTCH     SEGSZ  CPID  LPID   ATIME    DTIME    CTIME
Shared Memory: m 262144 0x58000910 --rw-rw-rw- root system root system 1 134217728 81966 364798 11:17:02 11:17:03 11:17:02 m 1 0xe4663d62 --rw-rw-rw- imnadm imnadm imnadm imnadm 1 96 270476 270476 17:55:25 17:55:27 17:55:22 m 2 0x9308e451 --rw-rw-rw- imnadm imnadm imnadm imnadm 1 97948 270476 270476 17:55:25 17:55:27 17:55:22 m 3 0x52e74b4f --rw-rw-rw- imnadm imnadm imnadm imnadm 1 36028 270476 270476 17:55:25 17:55:27 17:55:23 m 4 0xc76283cc --rw-rw-rw- imnadm imnadm imnadm imnadm 1 42268 270476 270476 17:55:25 17:55:27 17:55:24 m 5 0x298ee665 --rw-rw-rw- imnadm imnadm imnadm imnadm 1 2844 270476 270476 17:55:25 17:55:27 17:55:23 m 6 0xffffffff --rw-rw---- root system root system 1 4096 122952 122952 14:10:56 14:10:56 17:55:32 m 7 0x0d0016bd --rw-rw-rw- root system root system 3 1440 335974 319522 14:12:44 14:12:44 0:52:30 m 786440 0x00001515 --rw-rw-rw- root system root system 0 16 516188 520352 13:10:42 13:10:42 15:20:51 m 524297 0xffffffff --rw------- root system root system 0 40960 172222 299204 13:33:31 13:33:32 13:33 #

Dans ce cas précis nous prenons l' ID =7 Il faut ensuite mettre cette valeur en Hexa ( 7)

 # kdb
 ......
 0> ipc
 IPC info
 Select the display:
  1) Message Queues
  2) Shared Memory
  3) Semaphores
 Enter your choice: 2
 1) all shmid_ds
 2) select shmid_ds
 Enter your choice: 2
 Shared Memory ID (in hex): 7
 Shared memory ID 00000007 @ F10000AF60000498
 uid............. 00000000 gid............. 00000000
 cuid............ 00000000 cgid............ 00000000
 mode............ 000081B6 seq............. 0000
 key............. 000000000D0016BD 
 shm_segsz....... 00000000000005A0
 shm_lpid........ 000000000004E022
 shm_cpid........ 0000000000052066
 shm_nattch...... 0000000000000003 shm_cnattch..... 0000000000000003
 shm_atime....... 0000000040B72CBC
 shm_dtime....... 0000000040B72CBC
 shm_ctime....... 00000000408C412E
 shm_handle...... 0000000000006E3E
 shm_extshm...... 00000000
 shm_next........ 0000000000000000
 shm_prev........ 0000000000000000
 orig_shmid...... 00000000 cur_shmid....... 00000000 crid............
 00000000
 vhat_next....... 0000000000000000
 vhat_prev....... 0000000000000000
 (0)>q


La valeur qui nous intéresse est celle correspondant à shm_handle: 6E3E

Sur l'output du svmon -Pw, rechercher le VSID = 6e3e ( En minuscule ) et vous trouverez autant de process que la valeur du NATTCH. Il se peut que vous ayez la valeur NATTCH=0, cela veut dire qu'il n'y a aucun process d'attache, mais que la shared memory peut-etre utilisée par des nouveaux process pour acceder aux données de cette dernière .