进程间通信概述
进程间通信有如下的目的:
1、数据传输,一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M之间;
2、共享数据,多个进程想要操作共享数据,一个进程对数据的修改,其他进程应该立刻看到;
3、通知事件,一个进程需要向另一个或一组进程发送消息,通知它们发生了某件事情;
4、资源共享,多个进程之间共享同样的资源。为了做到这一点,需要内核提供锁和同步机制;
5、进程控制,有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。

Linux中,与IPC相关的命令包括:ipcs、ipcrm(释放IPC)、
IPCS命令是Linux下显示进程间通信设施状态的工具。我们知道,系统进行进程间通信(IPC)的时候,可用的方式包括信号量、共享内存、消息队列、管道、信号(signal)、套接字等形式。使用IPCS可以查看共享内存、信号量、消息队列的状态。

1.命令:ipcs
说明:显示消息队列、共享内存、信号量

ipcs [-a][-m|-q|-s]
  -a       是默认的输出信息 打印出当前系统中所有的进程间通信方式的信息
 -m       输出有关共享内存(shared memory)的信息
 -q        输出有关消息队列(message queue)的信息
 -s        输出有关“信号量”(semaphore)的信息

其中:
第一列就是共享内存的key;
第二列是共享内存的编号shmid;
第三列就是创建的用户owner;
第四列就是权限perms;
第五列为创建的大小bytes;
第六列为连接到共享内存的进程数nattach;
第七列是共享内存的状态status。其中显示“dest”表示共享内存段已经被删除,但是还有用户在使用它,当该段内存的mode字段设置为 SHM_DEST时就会显示“dest”。当用户调用shmctl的IPC_RMID时,内存先查看多少个进程与这个内存关联着,如果关联数为0,就会销 毁这段共享内存,否者设置这段内存的mod的mode位为SHM_DEST,如果所有进程都不用则删除这段共享内存。

输出格式的控制

ipcs -t   输出信息的详细变化时间
 ipcs -p  输出ipc方式的进程ID
 ipcs -c  输出ipc方式的创建者/拥有者
 ipcs -l  输出ipc各种方式的在该系统下的限制条件信息
 ipcs -u  输出当前系统下ipc各种方式的状态信息(共享内存,消息队列,信号)

2.命令:ipcrm
说明:删除消息队列、共享内存、信号灯
ipcrm [ -M key | -m id | -Q key | -q id | -S key | -s id ] ...
 -M   以shmkey删除共享内存
 -m   以shmid删除共享内存
 -Q   以msgkey删除消息队列
 -q    以msgid删除消息队列
 -S    以semkey删除信号灯
 -s    以semid删除信号灯

下面的命令可以释放所有已分配的共享内存:
ipcs -m | awk '$2 ~ /[0-9]+/ {print $2}' | while read s; do sudo ipcrm -m $s; done

最新文章

  1. 错误Batch update returned unexpected row count from update [0]; actual row count: 0;
  2. Countries in War -POJ3114Tarjan缩点+SPFA
  3. webpack练手项目之easySlide(三):commonChunks(转)
  4. QuickStart OpenvirteX
  5. RHEL 5 安装phpqrcode生成二维码
  6. Oracle 11gR2 Database UNDO表空间使用率居高不下-转载
  7. 注册表 锁IE首页
  8. 【翻译】Sencha Touch2.4 The Layout System 布局
  9. 通过表名显示数据库中该表的表头和内容(mysql扩展库操作)
  10. RAC优化大框架的分配(jumbo frame)
  11. angularJS 系列(六)---$emit(), $on(), $broadcast()的使用
  12. 201521123059 《Java程序设计》第三周学习总结
  13. 6 Tools To Jump Start Your Video Content Marketing
  14. svn部署项目
  15. python 基础数据类型之list
  16. STAX项目结束总结
  17. LA 6892 The Safe Secret(矩阵连乘)
  18. Winform嵌入其它应用程序
  19. ecside 列表排序问题
  20. Python调用shell

热门文章

  1. Ubuntu中安装jdk环境
  2. 【leetcode刷题笔记】Jump Game
  3. SQl Server 中登录名 、用户、角色、概念一览
  4. 同一台电脑关于多个SSH KEY管理
  5. linux挂载/卸载优盘
  6. Bootstrap(二)段落+强调内容
  7. python 正则表达式(二)
  8. Shiro身份认证---转
  9. Python习题-输出一个字符串中最长的子字符串及其长度
  10. Linux-NoSQL之MongoDB