【问题标题】:How to run a python script on multiple Raspberry Pi 3 simultaneously?如何同时在多个 Raspberry Pi 3 上运行 python 脚本?
【发布时间】:2019-12-03 14:22:49
【问题描述】:

我试图让两个 Raspberry Pi 3 在从单个终端窗口运行后同时运行相同的 python 脚本。我相信这两个设备是通过蓝牙配对的,但我不知道是否有我可以写的一行或其他方式让脚本同时在两个设备上运行。

我们将不胜感激。

【问题讨论】:

  • 如果您是从另一台计算机上运行它,您可以创建一个与 ssh 连接并在两个 Pis 上运行单个命令的脚本

标签: python raspberry-pi3


【解决方案1】:

这完全取决于您对“同时”的定义。实际上,由于物理限制以及调度程序在网络接口上的工作方式,我们能做的最好的事情就是“几乎同时”。有两种方法可以做到这一点:

首先,您可以在其中一个RPi 上运行ntpdate -b [HOST][HOST] 是网络上另一个RPi 的主机名或IP 地址;这将在 NTP 协议的容差范围内对设备进行时间同步(在同一本地网络上非常准确,在整个网络中越来越不准确)。然后,您可以在两个设备上设置一个 chrontab 作业,该作业计划在未来某个已知时间调用该 python 脚本。您可以制作此方法的更复杂变体(例如,设置主从等),其中将包含下一个解决方案的元素。

您可以使用的第二种解决方案是屏幕和安全 shell 执行。在这里,screens 运行可以自动调用脚本和/或命令的并行终端会话。您感兴趣的命令将是您所指的 python 脚本:ssh [USER1]@[HOST1] [PYSCRIPT] 用于第一个屏幕,ssh [USER1]@[HOST1] [PYSCRIPT] 用于第二个屏幕。这只会在您的处理器调度程序和网络接口适配器调度程序的容差范围内同时执行(可能会延迟几毫秒)。

如前所述,您可以将第一个解决方案与第二个解决方案混合使用,自动执行时间同步并更新 chrontab 以使脚本在时间同步完成后几乎执行。这需要一些工作和调整,但在许多分布式处理问题中是常见的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 2016-12-16
    • 2016-10-18
    相关资源
    最近更新 更多