我在 pi 3 上运行 mosquitto 时遇到了问题。我用它将公寓中多个传感器(433 mhz)的温度和湿度传输到也在 pi 上运行的 node red。当我启动代理时,我可以看到消息进入我的 node red,但只要我关闭 putty 终端,代理似乎就会停止传输。
我的命令是这样的:
rtl_433 -F json -M utc | mosquitto_pub -h 192.168.178.37 -t home/rtl_433 -l
当我再次启动 putty 并想要再次启动代理时,我收到该地址已被使用的错误。
我该如何改变这种蚊子不停歇的现象?我读过一些关于自动启动功能的文章,但有很多可能性,我有点困惑,哪个可能是解决我的问题的最佳选择。
答案1
希望有人能为您提供更好的命令行答案,但这些想法太多,不能作为评论,而只是某种答案 -
一个黑客技巧可能是在“screen”或“tmux”中运行它,这将允许你分离终端。
或者,您可以通过创建以下内容的文件(例如名为 rtl2mqtt)将其转换为脚本
#/bin/bash
rtl_433 -F json -M utc | mosquitto_pub -h 192.168.178.37 -t home/rtl_433 -l
然后运行
chmod 755 rtl2mqtt
使其可执行。最后,启动它,使其进入后台(注意 &)-
rtl2mqtt &
我确实指出 mosquitto_pub 不是代理,它是一个客户端,似乎正在从 rtl433 系统提取数据并将其推送到 mosquitto。我预计您会发现 mosquitto 在后台运行 - 这是一个守护进程,实际上是代理。