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鍵ペアを作成してください。