.bashrcのコマンドは2回実行されます。

.bashrcのコマンドは2回実行されます。

.bashrcシステム起動時に実行するために使用するPythonスクリプトは次のとおりです。

sudo -u pi python3 /path/to/script.py

その後、起動時にターミナルウィンドウが開くことを確認するために@lxterminalファイルに追加しました。/etc/xdg/lxsession/LXDE-pi/autostart

しかし、すべての進捗状況を確認したとき、同時に2つの同じスクリプトしか実行していませんが、システムで2つのプロセスが実行されていることがわかりましたps aux。助けてくれてありがとう。script.py.bashrc

答え1

ここにはいくつかの誤解があります。すべてのコマンド.bashrcが実行されます。新しい対話型非ログインシェルを起動するたびに。これは、新しい端末を開くたびに再実行されることを意味します。実行するたびにbash再実行されます。

sudo次の問題は、パスワードのない実行を許可するように設定しないと、コマンドが実行されないことです。パスワードを待って停止します。まだ必要ですかsudopiあなたのユーザー名ではありませんか?すべてのコマンドは.bashrcユーザーとして実行されるため、呼び出す必要はありませんsudo

結局、ターミナルを起動することは関係ありません。コマンドはその端末で実行されず、端末はそのまま残ります。

必要なのは、このコマンドを追加し、再/etc/crontab起動時にユーザーとして実行するように設定することだけですpi。実行しsudo nano /etc/crontab、次の行をファイルに追加します。

@reboot pi python3 /path/to/script.py

python3 /path/to/script.pyこれにより、再起動するたびにシステムにユーザーとしてコマンドを実行するように指示しますpi

関連情報