ipcs1. 命令格式 ipcs [resource-option] [output-format] ipcs [resource-option] -i id
2. 命令功能 提供IPC设备的信息 3. 使用方法
resource选项: ipcs -m 查看系统共享内存信息
ipcs -q 查看系统消息队列信息 ipcs -s 查看系统信号量信息 ipcs [-a] 系统默认输出信息,显示系统内所有的IPC信息 [martin@localhost data]$ ipcs -a------ Message Queues --------
key msqid owner perms used-bytes messages
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 229376 martin 600 4194304 2 dest
0x00000000 196609 martin 600 524288 2 dest
0x00000000 327682 martin 600 393216 2 dest
0x00000000 491525 martin 600 2097152 2 dest
------ Semaphore Arrays --------
key semid owner perms nsems ? 输出格式控制: ipcs -c 查看IPC的创建者和所有者 ipcs -l 查看IPC资源的限制信息 ipcs -p 查看IPC资源的创建者和使用的进程ID ipcs -t 查看最新调用IPC资源的详细时间 ipcs -u 查看IPC资源状态汇总信息 [martin@localhost data]$ ipcs -u --human------ Messages Status --------
allocated queues = 0
used headers = 0
used space = 0B
------ Shared Memory Status --------
segments allocated 4
pages allocated 1760
pages resident 339
pages swapped 0
Swap performance: 0 attempts 0 successes
------ Semaphore Status --------
used arrays = 0
allocated semaphores = 0 ? 额外格式控制: ipcs -l --human 以人类可以阅读的方式显示size [martin@localhost data]$ ipcs -l --human------ Messages Limits --------
max queues system wide = 3644
max size of message = 8K
default max size of queue = 16K
------ Shared Memory Limits --------
max number of segments = 4096
max seg size = 16E
max total shared memory = 16E
min seg size = 1B
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 3276 ? ipcrm1. 命令功能 通过指定ID删除删除IPC资源,同时将与IPC对象关联的数据一并删除,只有超级用户或IPC资源创建者能够删除 2. 使用方法 ipcrm -M?shmkey 移除用shmkey创建的共享内存段 ipcrm -m shmid 移除用shmid标识的共享内存段 ipcrm -S semkey 移除用semkey创建的信号量 ipcrm -s semid 移除用semid标识的信号量 ipcrm -Q msgkey 移除用msgkey创建的消息队列 ipcrm -q?msgid 移除用msgid标识的消息队列 ?
查看共享内存 [app_usr@js2test01 shell]$ ipcs ------ Shared Memory Segments -------- key??????? shmid????? owner????? perms????? bytes????? nattch???? status????? 0x0122f9df 12419074?? app_usr?? 666??????? 70604918?? 0?????????????????????? 0x0001b3ef 14450693?? app_usr?? 666??????? 70604278?? 0?????????????????????? 0x0003d09a 14385158?? app_usr?? 666??????? 67732????? 1
//各字段含义: 第一列就是共享内存的key; 第二列是共享内存的编号shmid; 第三列就是创建的用户owner; 第四列就是权限perms; 第五列为创建的大小bytes; 第六列为连接到共享内存的进程数nattach; 第七列是共享内存的状态status。其中显示“dest”表示共享内存段已经被删除,但是还有用户在使用它,当该段内存的mode字段设置为SHM_DEST时就会显示“dest”。当用户调用shmctl的IPC_RMID时,内存先查看多少个进程与这个内存关联着,如果关联数为0,就会销毁这段共享内存,否者设置这段内存的mod的mode位为SHM_DEST,如果所有进程都不用则删除这段共享内存。 //删除共享内存 直接使用#ipcrm -m shmid可能不能直接删除掉还存在进程使用的共享内存。这时候可以用ps -ef对进程进行查看,kill掉多余的进程后,再使用ipcs查看。
|