RPiで2つのプログラムを同時に実行する方法

RPiで2つのプログラムを同時に実行する方法

2つのアクティブなラズベリーパイがあります。彼らはすべてスクリプトを持っています:adxl345test.py

このスクリプトは加速度計からデータを収集します。私は通常、あるRPiでスクリプトを起動し、別のRPiでスクリプトを起動します。しかし、今ではスクリプトを同時に起動したいと思います。だから...

  • 1つのRPiから2つのRPiのスクリプトを実行できますか?

このようにして、あるRPiは、独自のスクリプトと別のRPiの外部スクリプトの実行を開始します。

sudo python adxl345test.pyコンソールに書き込み、Enterキーを押して各RPiでスクリプトを起動します。クロックはPTPdと同期されます。私が探しているのは、RPiコンソールに単一のコマンドを作成してスクリプトをトリガーすることです。現在の精度はそれほど重要ではありません。

RPiはインターネットに接続されています。


1つのコマンドで両方のスクリプトを実行する方法を見つけました。ここにいる:

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

しかし、私はsshを使用しているので、2番目のRPiではスクリプトを実行する前にパスワードが必要です。だから...

  • パスワードをスキップする方法はありますか?
  • 上記のコマンドにパスワードを直接書き込むことはできますか?

sshpass(sudo apt-get install sshpass)を使用してコマンドに直接パスワードを入力しました。コマンドは次のとおりです。

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

これで、1つのコマンドでデータ収集を開始できますが、それでも同時に起動しません(約1秒間隔)。

  • 時間的に近づく(0.1秒以下)開始できますか?
  • また、データのロギングを停止する方法は?通常、Ctrl + cを使用しますが、これは単一のRPiで単一のスクリプトを実行した場合にのみ機能します。

答え1

両方のRPiが互いに通信できる場合は、RPiの1つに小さなシェルスクリプトを作成し、SSHコマンドを使用してリモートスクリプトを起動してからローカルスクリプトを起動します。

これに特定のSSH設定がある場合は、RPiに機密の秘密鍵を残しておくと危険になる可能性があるため、この目的のためにSSH鍵ペアを作成してください。

関連情報