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

02-07

  用途

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

  语法

  代码如下:

  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>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