首页 > 解决方案 > 如何连续运行可以从节点接收命令的 Python 脚本

问题描述

我已经设置了一个连接到 LED 灯条的 Raspberry Pi,该灯条可以通过我在 RasPi 上运行的节点服务器从我的手机控制。它触发一个设置颜色的简单 python 脚本。

我正在寻找扩展功能,以便我有一个连续运行的 python 脚本,我可以向它发送颜色,它将消耗新颜色并并排显示旧颜色和新颜色。即python脚本可以接收命令和管理状态。

我已经研究过是否为此使用简单的循环或守护程序,但我不明白如何连续运行脚本并接收新命令。

是在 Node 服务器中保持状态并继续向基本的 Python 脚本发送大量简单命令,还是编写一个更复杂的 Python 脚本来接收一些更简单的命令并不断更新灯光?

标签: pythonnode.jscommand-lineraspberry-pi

解决方案


IIUC,您不一定需要让 python 脚本连续运行。它只需要存储状态,您可以通过将状态写入文件来做到这一点。然后脚本可以在启动时读取最后一个状态文件,决定从那里做什么,执行操作,然后更新状态文件。

如果您确实想实际连续运行脚本,则需要一种接受命令的方法。守护进程接受命令的最简单方法可能是通过信号,您可以使用自定义信号,例如 SIGUSR1 和 SIGUSR2 来发送和接收这些通知。如果您的守护进程只需要接受非常简单的请求,这些可能就足够了。

对于需要实际接受消息的更复杂的请求,您可以监听 Unix 套接字或监听 TCP 套接字。标准库中的 socket 模块可以帮助你。如果您想构建一个更复杂的命令服务器,那么您甚至可能需要考虑运行一个完整的 HTTP 服务器,尽管这对于当前情况来说显得有些过分。

是在 Node 服务器中保持状态并继续向基本的 Python 脚本发送大量简单命令,还是编写一个更复杂的 Python 脚本来接收一些更简单的命令并不断更新灯光?

对此没有直接的答案。这取决于具体情况、状态的复杂程度、您需要更改颜色的频率、您对语言的熟悉程度等。


推荐阅读