.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
次の問題は、パスワードのない実行を許可するように設定しないと、コマンドが実行されないことです。パスワードを待って停止します。まだ必要ですかsudo
?pi
あなたのユーザー名ではありませんか?すべてのコマンドは.bashrc
ユーザーとして実行されるため、呼び出す必要はありませんsudo
。
結局、ターミナルを起動することは関係ありません。コマンドはその端末で実行されず、端末はそのまま残ります。
必要なのは、このコマンドを追加し、再/etc/crontab
起動時にユーザーとして実行するように設定することだけですpi
。実行しsudo nano /etc/crontab
、次の行をファイルに追加します。
@reboot pi python3 /path/to/script.py
python3 /path/to/script.py
これにより、再起動するたびにシステムにユーザーとしてコマンドを実行するように指示しますpi
。