创建了消息队列后,如果没有主动删除,或者程序不正常退出,那么消息队列会滞留在内核中,不断累加白白占用资源,直到操作系统重启。于是查询了,ipcs 和 ipcrm 命令,同时了解了其他用法。
ipcs 命令
查看消息队列、共享内存、信号量的相关信息。
用法:
ipcs -a
(默认)输出全部信息,消息队列、共享内存段和信号量
ipcs -m
只输出共享内存段信息
ipcs -s
只输出信号量信息
ipcs -q
只输出消息队列信息
ipcs -t
输出信息的详细变化时间
ipcs -p
输出IPC方式的进程ID
ipcs -c
输出ipc各种方式的在该系统下的限制条件信息
ipcs -u
输出当前系统下ipc各种方式的状态信息(共享内存,消息队列,信号)
ipcrm 命令
真正的删除消息对象(消息队列、共享内存或信号量)。
用法:
ipcrm -M shmkey
移除用shmkey创建的共享内存段
ipcrm -m shmid
移除用shmid标识的共享内存段
ipcrm -S semkey
移除用semkey创建的信号
ipcrm -s semid
移除用semid标识的信号
ipcrm -Q msgkey
移除用msqkey创建的消息队列
ipcrm -q msqid
移除用msqid标识的消息队列