linux程序设计——IPC状态命令(第十四章)

14.5    IPC状态命令

虽然X/Open规范并没有定义它们,但大多数linux系统都提供了一组命令,用于从命令行上访问IPC信息以及清理游离的IPC机制.它们是ipcs和ipcrm命令,这两个命令对于开发程序非常有用.
IPC机制一个让人烦恼的问题是:编写错误的程序或者因为某些原因而执行失败的程序把它的IPC资源(如消息队列中的数据)遗留在系统中,并且这些资源在程序结束后很长时间仍然在系统中游荡.这将导致对程序的新调用执行失败,因为程序期望以一个干净的系统来启动,但事实上却发现一些遗留的资源.状态命令(ipcs)和删除命令(ipcrm)提供了一种检查和清理IPC机制的方法.

14.5.1    显示信号量状态

要检查系统中信号量的状态,可以使用命令ipcs -s.如果系统中有信号量存在,就会给出如下格式的输出:
$ ipcs -s


可以用命令ipcrm来删除那些因意外情况而被程序遗留在系统中的信号量.要删除上面的信号量,使用的命令(在linux系统中)如下所示:

$ ipcrm -s 768

14.5.2    显示共享内存状态

类似于信号量,许多系统提供了命令行程序来访问共享内存的细节情况.它们是命令ipcs -m和ipcrm -m<id>
下面是一些ipcs -m命令的样本输出:
$ ipcs -m

ipcrm -m <id>命令的作用是删除共享内存.如果程序因运行失败而未清理共享内存,这个命令就很有用了.

14.5.3    显示消息队列状态

用于消息队列的命令是ipcs -q和ipcrm -q <id>
下面是命令ipcs -q的一些输出:

14.6    小结

在本章中,介绍了3种进程间通信的机制,它们最早出现在UNIX System V.2版本中,并从linux的早起版本开始就已用.这些机制是信号量,共享内存和消息队列.介绍了它们所提供的复杂功能以及这些功能是如何提供的.一旦理解了这些功能,它们就可以为许多进程间通信的需求提供有力的解决方案.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值