原文:http://www.thegeekstuff.com/2010/08/ipcs-command-examples/
IPC stands for Inter-process Communication.
This technique allows the processes to communicate with each another.
Since each process has its own address space and unique user space, how does the process communicate each other?
The answer is Kernel, the heart of the Linux operating system that has access to the whole memory. So we can request the kernel to allocate the space which can be used to communicate between processes.
The process can also communicate by having a file accessible to both the processes. Processes can open, and read/write the file, which requires lot of I/O operation that consumes time.
Different Types of IPCS
There are various IPC’s which allows a process to communicate with another processes, either in the same computer or different computer in the same network.
-
Pipes– Provides a way for processes to communicate with each another by exchanging messages. Named pipes provide a way for processes running on different computer systems to communicate over the network.
-
Shared Memory– Processes can exchange values in the shared memory. One process will create a portion of memory which other process can access.
-
Message Queue– It is a structured and ordered list of memory segments where processes store or retrieve data.
-
Semaphores– Provides a synchronizing mechanism for processes that are accessing the same resource. No data is passed with a semaphore; it simply coordinates access to shared resources.
10 IPCS Command Example
ipcs is a UNIX / Linux command, which is used to list the information about the inter-process communication ipcs command provides a report on System V IPCS (Message queue, Semaphore, and Shared memory).
IPCS Example 1: List all the IPC facility
ipcs command with -a option lists all the IPC facilities which has read access for the current process. It provides details about message queue, semaphore and shared memory.
# ipcs -a
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0xc616cc44 1056800768 oracle 660 4096 0
0x0103f577 323158020 root 664 966 1
0x0000270f 325713925 root 666 1 2
------ Semaphore Arrays --------
key semid owner perms nsems
0x0103eefd 0 root 664 1
0x0103eefe 32769 root 664 1
0x4b0d4514 1094844418 oracle 660 204
------ Message Queues --------
key msqid owner perms used-bytes messages
0x000005a4 32768 root 644 0 0
All the IPC facility has unique key and identifier, which is used to identify an IPC facility.
IPCS Example 2: List all the Message Queue
ipcs with option -q, lists only message queues for which the current process has read access.
$ ipcs -q
------ Message Queues --------
key msqid owner perms used-bytes messages
0x000005a4 32768 root 644 0 0
IPCS Example 3. List all the Semaphores
ipcs -s option is used to list the accessible semaphores.
# ipcs -s
------ Semaphore Arrays --------
key semid owner perms nsems
0x0103eefd 0 root 664 1
0x0103eefe 32769 root 664 1
0x4b0d4514 1094844418 oracle 660 204
IPCS Example 4. List all the Shared Memory
ipcs -m option with ipcs command lists the shared memories.
# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0xc616cc44 1056800768 oracle 660 4096 0
0x0103f577 323158020 root 664 966 1
0x0000270f 325713925 root 666 1 2
IPCS Example 5. Detailed information about an IPC facility
ipcs -i option provides detailed information about an ipc facility.
# ipcs -q -i 32768
Message Queue msqid=32768
uid=0 gid=0 cuid=0 cgid=0 mode=0644
cbytes=0 qbytes=65536 qnum=0 lspid=0 lrpid=0
send_time=Not set
rcv_time=Not set
change_time=Thu Aug 5 13:30:22 2010
Option -i with -q provides information about a particular message queue. Option -i with -s provides semaphore details. Option -i with -m provides details about a shared memory.
IPCS Example 6. Lists the Limits for IPC facility
ipcs -l option gives the system limits for each ipc facility.
# ipcs -m -l
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 67108864
max total shared memory (kbytes) = 17179869184
min seg size (bytes) = 1
The above command gives the limits for shared memory. -l can be combined with -q and -s to view the limits for message queue and semaphores respectively.
Single option -l gives the limits for all three IPC facilities.
# ipcs -l
IPCS Example 7. List Creator and Owner Details for IPC Facility
ipcs -c option lists creator userid and groupid and owner userid and group id. This option can be combined with -m, -s and -q to view the creator details for specific IPC facility.
# ipcs -m -c
------ Shared Memory Segment Creators/Owners --------
shmid perms cuid cgid uid gid
1056800768 660 oracle oinstall oracle oinstall
323158020 664 root root root root
325713925 666 root root root root
IPCS Example 8. Process ids that accessed IPC facility recently
ipcs -p option displays creator id, and process id which accessed the corresponding ipc facility very recently.
# ipcs -m -p
------ Shared Memory Creator/Last-op --------
shmid owner cpid lpid
1056800768 oracle 16764 5389
323158020 root 2354 2354
325713925 root 20666 20668
-p also can be combined with -m,-s or -q.
IPCS Example 9. Last Accessed Time
ipcs -t option displays last operation time in each ipc facility. This option can also be combined with -m, -s or -q to print for specific type of ipc facility. For message queue, -t option displays last sent and receive time, for shared memory it displays last attached (portion of memory) and detached timestamp and for semaphore it displays last operation and changed time details.
# ipcs -s -t
------ Semaphore Operation/Change Times --------
semid owner last-op last-changed
0 root Thu Aug 5 12:46:52 2010 Tue Jul 13 10:39:41 2010
32769 root Thu Aug 5 11:59:10 2010 Tue Jul 13 10:39:41 2010
1094844418 oracle Thu Aug 5 13:52:59 2010 Thu Aug 5 13:52:59 2010
IPCS Example 10. Status of current usage
ipcs with -u command displays current usage for all the IPC facility. This option can be combined with a specific option to display the status for a particular IPC facility.
# ipcs -u
------ Shared Memory Status --------
segments allocated 30
pages allocated 102
pages resident 77
pages swapped 0
Swap performance: 0 attempts 0 successes
------ Semaphore Status --------
used arrays = 49
allocated semaphores = 252
------ Messages: Status --------
allocated queues = 1
used headers = 0
used space = 0 bytes
分享到:
相关推荐
关于 Linux 下各种 IPC 的编程手册
主要介绍了Linux ipcs命令的使用,帮助大家更好的学习和理解Linux,感兴趣的朋友可以了解下
以下是对Linux中的ipcs命令与ipcrm命令的用法进行了介绍,需要的朋友可以过来参考下
linux-IPCs Linux进程间通信方式汇总 目前已包含的方式 管道(PIPE) FIFO(有名管道) XSI消息队列 XSI信号量 XSI共享内存 POSIX信号量 域套接字(Domain Socket) 信号(Signal) 互斥量(Mutex) 其中信号(signal)和信号量...
ipcs用于报告Linux中进程通信设施的状态。 语法 ipcs [resource-option] [output-format] ipcs [resource-option] -i id resource选项 -m:查看系统共享内存信息 -q:查看系统消息队列信息 -s:查验系统信号量信息 ...
BLOG_Oracle_lhr_【ipcs、ipcrm、sysresv、kernel.shmmax】.pdfBLOG_Oracle_lhr_【ipcs、ipcrm、sysresv、kernel.shmmax】.pdf
BLOG_【故障解决】IPCS和IPCRM使用.pdfBLOG_【故障解决】IPCS和IPCRM使用.pdf
util-linux-ng-2.17源码(含fdisk) Here is a list of all documented files with brief descriptions: util-linux-ng-2.17.2/disk-utils/blockdev.c [code] util-linux-ng-2.17.2/disk-utils/cramfs.h [code] ...
ipcs命令是用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息 。 语法格式:ipcs [参数] 常用参数: -a 默认的输出信息 -m 打印出使用共享内存进行进程间通信的信息 -q ...
zh-ipcs-ui.rar
使用方法,解压到本地目录,配置path,即可在dos下使用linux命令。 windows下能直接执行的linux命令,基本包括日常所有,如:[.exe grolbp.exe regtool.exe a2p.exe grolj4.exe rm.exe a2p5.10.0.exe grops.exe ...
在优化oracle的时候,遇到了oracle的SGA大小远远大于linux系统共享 内存的最大值,以至于当用ipcs命令查看的时候,oracle的SGA区被分成了10个段,这大大影响的oracle的反应速度。本文将为大家介绍linux操作系统修改...
IPCS二期委托收款托收承付培训大纲PPT教案.pptx
掌握Linux系统的指令及其用法是学习Linux系统的基础。本书详细地介绍了常用Linux指令的功能、语法、参数说明以及具体的操作实例。全书共讲解指令412个,共有实例760个。 本书中所讲指令按照字母顺序和功能顺序...
同望IPCS工程造价管理软件解决方案介绍(与“造价”有关文档共46张).pptx
4.6.1 ipcs 命令...............85 4.6.2 ipcrm 命令.............86 4.7 消息队列(Message Queues).........86 4.7.1 有关的数据结构....86 4.7.2 有关的函数...........89 4.7.3 消息队列实例——msgtool,一个...
全志R16平台编译linux系统V1.0.txt 2017/4/11 13:36 (编译请使用编译android的lichee的选项编译生成的.config文件,不然直接编译会报错!!!!) rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ tar...
10 1.4.4 UNIX 仅仅是历史吗?............................................................................. 11 1.5 Linux 的发展..............................................................................