ipcs、ipcrm使用
ipcs用法
IPC资源类型选项
- ipcs -a 是默认的输出信息 打印出当前系统中所有的进程间通信方式的信息
- ipcs -m 打印出使用共享内存进行进程间通信的信息
- ipcs -q 打印出使用消息队列进行进程间通信的信息
- ipcs -s 打印出使用信号进行进程间通信的信息
输出格式选项:当指定多个时,以最后一个为准
ipcs -c, —creator:查看IPC的创建者和所有者
-l, —limits:查看IPC资源的限制信息
-p, —pid:查看IPC资源的创建者和最后操作者的进程ID
ipcs -t 输出最新调用IPC资源的详细时间。包括msgsnd()和msgrcv() 对message queues的操作,shame()和shmdt() 对shared memory的操作,以及semop() 对semaphores的操作
ipcs -u 输出当前系统下ipc各种方式的状态信息(共享内存,消息队列,信号)
Ipcs -i, —id [id]:详细显示指定资源ID 的IPC信息。使用时需要指定资源类型,资源包括消息队列(-q)、共享内存(-m)和信号量(-s)
ipcs -h, —help:显示帮助信息
ipcs -V, —version:显示版本信息
显示大小单位控制选项:只对选项 -l ( limits ) 生效
-b, —bytes:以字节为单位显示大小
- -human:以可读的格式显示大小
例子:
显示共享内存指定ID的信息
ipcs -m -i 3278
查看 IPC 的创建者和最后操作者的进程ID
ip -m -p shmid
其中,lspid 代表最近一次向消息队列中发送消息的“进程号”,lrpid 对应最近一次从消息队列中读取消息的”进程号“。
但是请注意:此处的进程号是弱进程号,既可能代表的是线程号,如果进程中是起的线程对消息队列发送、接收消息,则此处pid 对应的均是线程号。可以采用 ps -AL | grep pid 来查找该进程对应的进程 id。
ipcrm 命令
移除一个消息对象。或者共享内存段,或者一个信号集,同时会将与ipc对象相关链的数据也一起移除。当然,只有超级管理员,或者ipc对象的创建者才有这项权利啦
ipcrm -M shmkey 移除用shmkey创建的共享内存段
ipcrm -m shmid 移除用shmid标识的共享内存段
ipcrm -Q msgkey 移除用msqkey创建的消息队列
ipcrm -q msqid 移除用msqid标识的消息队列
ipcrm -S semkey 移除用semkey创建的信号
ipcrm -s semid 移除用semid标识的信号