Raspberry Piが起動するたびに、Pythonスクリプト、アプリ、または別の種類のスクリプト(例:Bashスクリプト)を実行する理由はたくさんあります。おそらく、ロボットまたはIoTデバイスがあり、RaspberryPiに電力を供給して起動するとすぐにタスクを実行する準備ができている必要があります。または、特定のプログラムを常にバックグラウンドで実行し、セッションごとに手動で起動する必要がないようにしたい場合もあります。
Raspberry Piの起動時にスクリプトを自動的に開始する方法はいくつかありますが、最も簡単なのはcrontabを使用することです。これは、特定の時間に実行するようにスクリプトを設定できるスケジューリング機能です。
RaspberryPiブートでスクリプトを実行する方法
1.次のように入力してcrontabリストを編集します。
sudoを入力せずにcrontabを起動できますが、起動すると、管理者権限を必要とするスクリプトを実行できなくなります。実際、sudoを使用しない場合は、異なるcrontabのリストが表示されるため、sudoを使用し続けるか、使用しないことを忘れないでください。
2.エディターを要求するように求められたら、nanoを選択します。
ファイルが開きます。
3.ファイルの最後に次のような行を追加します。
行は@rebootで始まる必要があります。これは、RaspberryPiを起動するたびに実行するように指示します。Pythonスクリプトの場合は、Pythonまたはpython3インタープリターを起動するコマンドを入力し、その後にPythonスクリプトへのフルパスを入力することをお勧めします。
Bashスクリプトまたは別のアプリの場合は、フルパスを入力するだけです。
4.保存して終了します。nanoでは、CTRL + Xを押し、Yと答え、プロンプトが表示されたらEnterを押すことでこれを行います。
5. Bashスクリプトの場合は、スクリプトを実行可能にします。Pythonインタープリターはすでに実行可能であるため、Pythonスクリプトは実行可能である必要はありません。次のように入力すると、任意のスクリプトを実行可能にすることができます
スクリプトをcrontabから削除する場合は、もう一度sudo crontab -eと入力して、その行を削除またはコメントアウトします。ウィンドウ環境を使用する必要のないプロジェクトを構築している場合は、sudo raspi-configと入力し、[Boot Options]に移動して、コマンドラインで起動するようにRaspberry Piを構成することで、システムリソースを節約できます。 >デスクトップ/CLIおよびコンソール自動ログインの選択。
RaspberryPiGUIでスクリプトまたはアプリを自動実行する方法
ウィンドウ化されたGUI内のRaspberryPiの起動時にスクリプトまたはアプリを実行する場合は、次の手順に従います。
1. / etc / xdg / autostart /ディレクトリにmyapp.desktop(または他の.desktop)というファイルを作成します。
2.myapp.desktopファイルで次のレイアウトを使用します。
コマンドとパラメータをExec=行に配置します。たとえば、ChromeブラウザでWebページを開くには、「chromium-browser[URL]」を入力します。アプリにsudo権限が必要な場合は、Execコマンドにsudoを含めることができます。
ターミナルウィンドウでスクリプトを実行するには、lxterminalに続けて–commandパラメータを使用し、「/ bin / bash-c’MYCOMMANDSHERE;」で二重引用符を付けます。/ bin / bash”’。たとえば、sudo権限を必要とするpython3スクリプトを起動するには、次を使用します。
これにより、スクリプトが実行されている状態で起動すると、ウィンドウ環境でターミナルウィンドウが起動します。スクリプトが終了すると(またはCTRL + Cを押してスクリプトを中止すると)、ターミナルウィンドウはプロンプトに戻ります。スクリプトの完了時にターミナルウィンドウを閉じたい場合は、最後の; / bin/bashを省略できます。
このようなターミナルウィンドウでスクリプトを実行すると便利です。これは、無限ループのPythonスクリプト(ロボットの場合など)の場合、CTRL+Cを押すことでスクリプトを簡単に強制終了できるためです。それ以外の場合、スクリプトを強制終了するには、以下で説明するプロセスを見つける必要があります。
スクリプトを殺す
Raspberry Piの起動後に自動実行スクリプトを停止したい場合はどうなりますか?スクリプトの実行がすでに完了している場合、スクリプトはメモリから削除されますが、継続的に何かを実行するように設計されている場合は、タスクを検索して強制終了する必要があります。
1. ps auxコマンドを使用してスクリプトを検索し、スクリプトの名前(または少なくとも部分的な名前)をgrepの後に置きます。
app.pyをスクリプトの名前に置き換えます。プロセス番号のリストが表示されます。
2. sudokill-9コマンドを使用して各プロセス番号を強制終了します。例えば、
その他のチュートリアル:
RaspberryPiでスクリーンショットをキャプチャする方法
RaspberryPiWebサーバーをセットアップする方法
SSDまたはフラッシュドライブからRaspberryPi4または3を実行する方法
RaspberryPiでカスタムキーボードショートカットを作成する方法
RaspberryPi4でエミュレーターを実行する方法
25以上のLinuxコマンドRaspberryPiユーザーが知っておく必要がある
ラズベリーパイでニュースティッカーシャツを作る方法