我正在编写一些代码,用POSIX消息队列替换TCP套接字。有时程序会崩溃(仍在开发中),并且没有删除创建的队列(没有执行:mq_close()
+ mq_unlink()
)。这会导致再次运行代码时出现问题。
有没有办法使用命令行删除/移除这些队列?我尝试使用:ipcs -q
。但没有列出任何队列。
我尝试过:lsof | grep queue-name
。它们在这里显示。
理想情况下,我想使用:ipcrm
。
我正在编写一些代码,用POSIX消息队列替换TCP套接字。有时程序会崩溃(仍在开发中),并且没有删除创建的队列(没有执行:mq_close()
+ mq_unlink()
)。这会导致再次运行代码时出现问题。
有没有办法使用命令行删除/移除这些队列?我尝试使用:ipcs -q
。但没有列出任何队列。
我尝试过:lsof | grep queue-name
。它们在这里显示。
理想情况下,我想使用:ipcrm
。
POSIX IPC对象被实现为虚拟文件系统中的文件。这些文件可以使用ls和rm列出和删除。要对POSIX消息队列执行此操作,我们必须使用以下命令挂载消息队列文件系统:
$ su
Password:
# mkdir /dev/mqueue
# mount -t mqueue none /dev/mqueue
# exit
su
并使用sudo <command>
。) - Melebius