ipcs命令学习
2012-12-10 18:47
106 查看
ipcs命令学习
在unix/linux下,经常有因为共享内存、信号量,队列等共享信息没有干净地清楚而引起一些问题。查看共享信息的内存的命令是ipcs [-m|-s|-q]。
默认会列出共享内存、信号量,队列信息,-m列出共享内存,-s列出共享信号量,-q列出共享队列
清除命令是ipcrm [-m|-s|-q] id。
-m 删除共享内存,-s删除共享信号量,-q删除共享队列。
[root@SNDA-172-17-15-173 ~]$ ipcs -a
------ Shared Memory Segments --------
key shmid
owner perms
bytes nattch
status
0x30024289 32768
futures 777
528384 1
0xca2fd414 491521
oracle 640
1730150400 16
------ Semaphore Arrays --------
key semid
owner perms nsems
0x00028009 0
futures 666 1
0x52dff7d0 3964936
oracle 640 151
------ Message Queues --------
key msqid owner perms used-bytes messages
共享内存段有时不能马上删除,需使用这个内存段的所有进程向OS发送detach命令时才有释放,此时可以考虑删除进程使用的信号量,帮助释放共享内存段
信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况;共享内存是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制。通常由一个进程创建一块共享内存区,其余进程对这块内存区进行读写。在Linux系统下 ,常用的方式是通过shmXXX函数族来实现利用共享内存进行存储的。如Shmget,类似于 malloc函数
相关知识:
ipcs可用来显示当前Linux系统中的共享内存段、信号量集、消息队列等的使用情况。
命令示例:
ipcs -a或ipc 显示当前系统中共享内存段、信号量集、消息队列的使用情况;
ipcs -m 显示共享内存段的使用情况;
ipcs -s 显示信号量集的使用情况;
ipcs -q 显示消息队列的使用情况;
ipcrm可用来删除对应的共享内存段、信号量、消息队列;
命令示例:
ipcrm -s semid 删除对应的信号量集
ipcrm -m shmid 删除对应的共享内存段
ipcrm -q msqid 删除对应的消息队列
ipcrm本身只能实现单个资源的删除,利用以下命令可实现批量删除:
1.ipcs -s|grep 用户名|cut -d" " -f2|xargs -n1 ipcrm
-s
2.ipcs -s|awk '/用户名/{print $2}'|xargs -n1 ipcrm
-s
3.ipcs -s|awk '/用户名/{system("ipcrm -s "$2)}'
4.for i in echo `ipcs|grep 用户名|cut -d" " -f2`;
do ipcrm -s $i; done
相关文章推荐
- 学习hp-unix的ipcs命令和ipcrm命令
- Linux快速入门教程-进程管理ipcs命令学习
- ipcs命令学习
- 常用的DOS命令和运行命令总结(不常用的不介绍,节省学习时间成本)【高手请绕道】
- 每天一条linux命令 学习-- cd和pwd命令
- linux命令学习记录
- linux shell编程学习--test测试比较命令
- Linux学习12_每天一个linux命令(42):kill命令
- Redis学习笔记~常用命令总结
- Linux命令学习手册-tty命令
- linux命令学习 --tee
- Maven学习之利用mvn deploy命令上传包
- 命令学习_ping
- Linux操作系统命令学习第六天
- 批处理学习笔记8 - 深入学习For命令1
- 刚接触到linux,对一些命令的学习,做个笔记
- Linux的shell命令的学习
- vimtutor的中文版-来自Linux中vimtutor命令-以备自己学习使用
- linux系统学习之命令
- AE学习笔记之添加ToolbarControl控件命令