需求

编程调试的时候,如果用到了消息队列,难免会消息队列中有残余信息的情况,并且如果希望在服务程序结束前就清除这些消息队列,那就需要在 shell 中使用命令进行删除。

解决

消息队列属于 IPC 的一部分,使用的命令也是 IPC 的系列命令中的 ipcrm.

  • 查看消息队列情况
    ipcs -q
    
  • 删除指定 key 的消息队列,一般我们经常用这个,因为 key 一般是我们自己设定的。
    ipcrm -Q 1234
    
  • 删除指定 id 的消息队列
    ipcrm -q 1234
    
  • 如果程序是使用 sudo 来启动的,那么删除的时候,也需要 sudo, 否则没有权限.

参考

ipcs, ipcrm 命令

linux下消息队列的查看与删除(ipcs&ipcrm的使用)

请问Linux下如何清除消息队列queue中的内容??