我正在编写一些代码来替换带有POSIX消息队列的TCP套接字。有时程序会崩溃(仍处于开发阶段),并且不会删除已创建的队列(未执行:mq_close()
+ mq_unlink()
)。当我再次运行代码时,这会导致问题。
有没有办法使用命令行删除/删除这些队列?我尝试使用:ipcs -q
。这无法列出任何队列。
我试过了:lsof | grep queue-name
。他们确实出现在这里。
理想情况下,我想使用:ipcrm
。
答案 0 :(得分:16)
POSIX IPC对象在虚拟文件系统中实现为文件。可以使用ls和rm列出和删除这些文件。要使用POSIX消息队列执行此操作,我们必须使用以下命令装入消息队列文件系统:
$ su
Password:
# mkdir /dev/mqueue
# mount -t mqueue none /dev/mqueue
# exit