Linux IPC命令的用法詳解
進(jìn)程間通信概述
進(jìn)程間通信有如下的目的:
1、數(shù)據(jù)傳輸,一個(gè)進(jìn)程需要將它的數(shù)據(jù)發(fā)送給另一個(gè)進(jìn)程,發(fā)送的數(shù)據(jù)量在一個(gè)字節(jié)到幾M之間;
2、共享數(shù)據(jù),多個(gè)進(jìn)程想要操作共享數(shù)據(jù),一個(gè)進(jìn)程對(duì)數(shù)據(jù)的修改,其他進(jìn)程應(yīng)該立刻看到;
3、通知事件,一個(gè)進(jìn)程需要向另一個(gè)或一組進(jìn)程發(fā)送消息,通知它們發(fā)生了某件事情;
4、資源共享,多個(gè)進(jìn)程之間共享同樣的資源。為了做到這一點(diǎn),需要內(nèi)核提供鎖和同步機(jī)制;
5、進(jìn)程控制,有些進(jìn)程希望完全控制另一個(gè)進(jìn)程的執(zhí)行(如Debug進(jìn)程),此時(shí)控制進(jìn)程希望能夠攔截另一個(gè)進(jìn)程的所有陷入和異常,并能夠及時(shí)知道它的狀態(tài)改變。
Linux進(jìn)程間通信由以下幾部分發(fā)展而來:
早期UNIX進(jìn)程間通信:包括管道、FIFO、信號(hào)。
基于System V的進(jìn)程間通信:包括System V消息隊(duì)列、System V信號(hào)燈(Semaphore)、System V共享內(nèi)存。
基于Socket進(jìn)程間通信。
基于POSIX進(jìn)程間通信:包括POSIX消息隊(duì)列、POSIX信號(hào)燈、POSIX共享內(nèi)存。
Linux中,與IPC相關(guān)的命令包括:ipcs、ipcrm(釋放IPC)、
IPCS命令是Linux下顯示進(jìn)程間通信設(shè)施狀態(tài)的工具。我們知道,系統(tǒng)進(jìn)行進(jìn)程間通信(IPC)的時(shí)候,可用的方式包括信號(hào)量、共享內(nèi)存、消息隊(duì)列、管道、信號(hào)(signal)、套接字等形式[2]。使用IPCS可以查看共享內(nèi)存、信號(hào)量、消息隊(duì)列的狀態(tài)。
例如在CentOS6.0上執(zhí)行ipcs
具體的用法總結(jié)如下:
1、顯示所有的IPC設(shè)施
# ipcs -a
2、顯示所有的消息隊(duì)列Message Queue
# ipcs -q
3、顯示所有的信號(hào)量
# ipcs -s
4、顯示所有的共享內(nèi)存
# ipcs -m
5、顯示IPC設(shè)施的詳細(xì)信息
# ipcs -q -i id
id 對(duì)應(yīng)shmid、semid、msgid等。-q對(duì)應(yīng)設(shè)施的類型(隊(duì)列),查看信號(hào)量詳細(xì)情況使用-s,查看共享內(nèi)存使用-m。
6、顯示IPC設(shè)施的限制大小
# ipcs -m -l
-m對(duì)應(yīng)設(shè)施類型,可選參數(shù)包括-q、-m、-s。
7、顯示IPC設(shè)施的權(quán)限關(guān)系
# ipcs -c
# ipcs -m -c
# ipcs -q -c
# ipcs -s -c
8、顯示最近訪問過IPC設(shè)施的進(jìn)程ID。
# ipcs -p
# ipcs -m -p
# ipcs -q -p
9、顯示IPC設(shè)施的最后操作時(shí)間
# ipcs -t
# ipcs -q -t
# ipcs -m -t
# ipcs -s -t
10、顯示IPC設(shè)施的當(dāng)前狀態(tài)
# ipcs -u
Linux上的ipcs命令,不支持UNIX上的-b、-o指令,同樣UNIX中不支持-l、-u指令,所以在編寫跨平臺(tái)的腳本時(shí),需要注意這個(gè)問題。
相關(guān)文章
完美解決eclipse中導(dǎo)入工程后中文注釋出現(xiàn)亂碼的問題
以下是對(duì)eclipse中導(dǎo)入工程后中文注釋出現(xiàn)亂碼的解決辦法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-08-08ubuntu 16.04 下如何設(shè)置root用戶初始密碼
這篇文章主要介紹了ubuntu 16.04 下如何設(shè)置root用戶初始密碼 ,需要的朋友可以參考下2017-06-06FreeBSD6.0Release+Squid+Socks5服務(wù)器架設(shè)筆記
FreeBSD6.0Release+Squid+Socks5服務(wù)器架設(shè)筆記...2007-05-05