删除消息队列

需求 编程调试的时候,如果用到了消息队列,难免会消息队列中有残余信息的情况,并且如果希望在服务程序结束前就清除这些消息队列,那就需要在 shell 中使用命令进行删除。 解决 消息队列属于 IPC 的一部分,使用的命令也是 IPC 的系列命令中的 ipcrm. 查看消息队列情况 ipcs -q 删除指定 key 的消息队列,一般我们经常用这个,因为 key 一般是我们自己设定的。 ipcrm -Q 1234 删除指定 id 的消息队列 ipcrm -q 1234 如果程序是使用 sudo 来启动的,那么删除的时候,也需要 sudo, 否则没有权限. 参考 ipcs, ipcrm 命令 linux下消息队列的查看与删除(ipcs&ipcrm的使用) 请问Linux下如何清除消息队列queue中的内容??

<span title='2023-04-04 11:55:00 +0800 CST'>2023-04-04</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;39 words&nbsp;·&nbsp;RamLife

修改消息队列的大小

需求 因为需要在多个进程之间通过消息队列传输数据,所以需要加大消息队列的大小。 解决 首先确定使用的是 System V 还是 POSIX 的消息队列,这两种从 API 到配置都不一样。本文主要提的是 System V 的消息队列。 System V 查看当前系统中的设置 cat /proc/sys/kernel/msgmni cat /proc/sys/kernel/msgmax cat /proc/sys/kernel/msgmnb # 查看当前使用 ipcs -u # 查看限制 ipcs -l 修改配置 System V 的消息队列配置文件是 /etc/sysctl.conf 这个总的配置文件或者 /etc/sysctl.d/ 文件夹下面的细分配置文件。 sudo vim /etc/sysctl.d/11-message-queue.conf # set message queue # set message number of any queue kernel.msgmni = 312 # set one message max size kernel.msgmax = 8192 # set all message totall max size kernel....

<span title='2023-03-23 14:26:00 +0800 CST'>2023-03-23</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;129 words&nbsp;·&nbsp;RamLife

命令行调试串口

需求 在编程使用串口之前,希望先确定串口硬件和系统层面是否正常。 解决 可以使用 stty 来调试串口功能。 查询当前串口配置 sudo stty -aF /dev/ttyS0 上面这个命令可以打印出当前串口的所有配置,有些配置选项前面有 -, 这个表示关闭此选项,或者额外意义,具体可以参考手册 man stty. 需要注意这几个配置: speed, -parenb, cs8, -cstopb, -ixon, -ixoff, -echo. 表示: 波特率,关闭校验,8位,1位停止,无流控,无回显. 保存,读取当前配置 在进行串口配置之前,应该先保存现在配置,便于以后的恢复。 # 保存 sudo stty -gF /dev/ttyS0 > save_stty # 读取 sudo stty -F /dev/ttyS0 $(cat save_stty) 脚本中可以这样写: save_stty="$(stty -g)" ... stty $save_stty 配置串口 sudo stty -F /dev/ttyS0 speed 115200 cs8 -parenb -cstopb -ixon -echo 上面这条命令立即生效,即使已经使用 cat 读取串口数据。 读取数据 sudo cat /dev/ttyS0 *注意: *...

<span title='2023-03-09 11:55:00 +0800 CST'>2023-03-09</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;106 words&nbsp;·&nbsp;RamLife