如何在 RPi 上同时运行两个程序

如何在 RPi 上同时运行两个程序

我有两个活跃的树莓派。他们都有剧本:adxl345test.py

该脚本从加速度计收集数据。我通常在一个 RPi 上启动脚本,然后在另一个 RPi 上启动脚本。但是现在我想同时启动脚本。所以...

  • 是否可以在一个 RPi 上运行两个 RPi 的脚本?

这样,一个 RPi 就会开始运行自己的脚本和另一个 RPi 的外部脚本。

sudo python adxl345test.py我通过在控制台中写入然后按 Enter 键来触发每个 RPi 上的脚本。时钟与 PTPd 同步。我正在寻找的是通过在一个 RPi 的控制台中编写单个命令来触发脚本。目前,精度并不是那么重要。

RPi 已联网。


我找到了一种通过一个命令运行两个脚本的方法。这里是:

pi@Sensor1:~ $ sudo python adxl345test.py & ssh pi@ip sudo python adxl345test.py

但是,由于我使用 ssh,第二个 RPi 在运行脚本之前需要输入密码。所以...

  • 有没有办法跳过密码?
  • 可以直接在上面的命令中写入密码吗?

使用 sshpass ( sudo apt-get install sshpass) 我设法直接在命令中输入密码。命令是:

pi@Sensor1:~ $ sudo python adxl345test.py & sshpass -p 'password' ssh pi@ip sudo python adxl345test.py

我现在只需一个命令即可开始收集数据,但它们仍然不会同时启动(大约 1 秒关闭)。

  • 是否有可能使它们开始时在时间上更加接近(0,1 秒或更短)?
  • 另外如何停止记录数据?通常我会使用 Ctrl+c,但这仅在一个 RPi 上运行单个脚本时有效。

答案1

如果两个 RPi 可以相互通信,请在其中一个 RPi 上编写一个小型 shell 脚本,使用 SSH 命令启动远程脚本,然后启动本地脚本。

如果您为此进行了特定的 SSH 设置,请为此目的创建一个 SSH 密钥对,因为在 RPi 上留下敏感的私钥会很危险。

相关内容