Linux系统中的ipcs命令使用详解

时间:2021-08-23 12:59:21

用途
报告进程间通信设施状态。


语法
 

复制代码
代码如下:
ipcs [-mqs] [-abcopt] [-C core] [-N namelist]

-m 输出有关共享内存(shared memory)的信息
-q 输出有关信息队列(message queue)的信息
-s 输出信号量(semaphore)的信息
# ipcs -m
IPC status from as of 2007年04月10日 星期二 18时32分18秒 CST
T ID KEY MODE OWNER GROUP
Shared Memory:
m 0 0x50000d43 --rw-r--r-- root root
m 501 0x1e90c97c --rw-r----- oracle dba

 


ipcrm - 删除ipc(清除共享内存信息)
引用
它的语法:
 

复制代码
代码如下:
ipcrm -m|-q|-s shm_id

-m 输出有关共享内存(shared memory)的信息
-q 输出有关信息队列(message queue)的信息
-s 输出信号量(semaphore)的信息
shm_id 共享内存id
#ipcrm -m 501

 


描述
ipcs 命令往标准输出写入一些关于活动进程间通信设施的信息。如果没有指定任何标志,ipcs 命令用简短格式写入一些关于当前活动消息队列、共享内存段、信号量、远程队列和本地队列标题。
列标题和在 ipcs 命令中的列的含义列在下面。圆括号内的字母表示导致对应的报头出现的标志。all 设计符表示始终显示报头。这些标志仅仅确定提供给每个设备何种信息。但它们并不确定将列出哪些设备。


ipcs查看消息队列命令
 

复制代码
代码如下:

ISD_1_3_sles10_64:/usr/local/services/httpd/bin # ipcs -ql

 

------ Messages: Limits --------
max queues system wide =16
max size of message (bytes) = 65536
default max size of queue (bytes) = 65536
------------------------------------
修改消息队列大小:
 

复制代码
代码如下:

root:用户: /etc/sysctl.conf</p> <p>kernel.msgmnb =4203520
#kernel.msgmnb =3520
kernel.msgmni = 2878

 

保存后需要执行 sysctl -p ,然后重建所有消息队列

ipcs -q   :  显示所有的消息队列

ipcs -qt :   显示消息队列的创建时间,发送和接收最后一条消息的时间
 

复制代码
代码如下:

goosns@[192.168.99.90:/hai]$ ipcs -qt

 

------ Message Queues Send/Recv/Change Times --------
msqid    owner      send                 recv                 change             
65536    mas        Not set              Not set              May 15 15:56:39    
98305    mas        May 15 15:59:22      May 15 15:59:22      May 15 15:56:39   

ipcs -qp:    显示往消息队列中放消息和从消息队列中取消息的进程ID
 

复制代码
代码如下:

goosns@[192.168.99.90:/hai]$ ipcs -qp

 

------ Message Queues PIDs --------
msqid      owner      lspid      lrpid    
65536    mas             0         0
98305    mas         21941     21941

ipcs -q -i  msgid:  显示该消息队列结构体中的消息信息:
 

复制代码
代码如下:

goosns@[192.168.99.90:/hai]$ ipcs -q -i 98305

 

Message Queue msqid=98305
uid=512 gid=500 cuid=512        cgid=500        mode=0600
cbytes=0        qbytes=4203520  qnum=0  lspid=21941     lrpid=21941
send_time=Thu May 15 16:00:19 2008
rcv_time=Thu May 15 16:00:19 2008
change_time=Thu May 15 15:56:39 2008

ipcs -ql :     显示消息队列的限制信息:
 

复制代码
代码如下:

goosns@[192.168.99.90:/hai]$ ipcs -ql

 

------ Messages: Limits --------
max queues system wide = 2878               //最大进程数
max size of message (bytes) = 8192         //队列中最大消息长度
default max size of queue (bytes) = 4203520