ウェブサイト検索

ラズベリー・パイの自動化: プログラムを自動起動させる方法


Raspberry Piでプログラムを自動起動させることは、特定のタスクに対してデバイスを自動化するのに役立ちます。ほとんどのユーザーは、Raspberry Piを日常的な作業に使用することはないため、さらなるユーザーの介入なしに自動的に起動するサービスやプログラムが必要です。このようなタスクを自動化できる場合、私たちの作業が減ります。このチュートリアルでは、Raspberry PiでコマンドラインとGUIを使用してプログラムを自動起動させる手順を説明します。

このチュートリアルでは、あなたは学びます:

  • rc.localファイルを使用してプログラムを自動起動する方法
  • crontabを使ってプログラムを自動起動する方法
  • systemdでプログラムを自動起動させる方法
  • GNOME Tweaksを使ってプログラムを自動起動する方法

コマンドラインを使用してプログラムを自動起動する方法

コマンドラインを使用する場合、Raspberry Piでプログラムを自動起動するためのさまざまな方法があります。以下に、さまざまな方法をサブセクションに分けました。あなたにとって最も簡単または状況に最も適切なものを自由に使用してください。

rc.localファイルを使用する

これは、各マルチユーザーランレベルの最後に実行される便利なファイルです。Raspberry Piが起動したときに実行したいコマンドの行をこのファイルに追加したり、実行するスクリプトを指定したりすることができます。nanoのようなテキストエディタで開いてファイルにアクセスしてください:


sudo nano /etc/rc.local

実行したいコマンドやスクリプトのパスをファイルの最後に追加してください。ファイルの最後には必ずexit 0を残して、意図した通りに動作し続けるようにしてください。

完了したら、ファイルを閉じて変更を保存します。

cronを使用する

Raspberry Piでプログラムを自動的に起動するもう一つの簡単な方法は、cronに設定することです。

  1. 次のコマンドを入力してcrontabを編集します:

    
    crontab -e
    
  2. crontabを初めて開く場合、どのエディタを使用するか尋ねられます。最も使いやすいのはnanoなので、迷ったらこのオプションを選択してください。

  3. 再起動時にcronが実行するスクリプトやコマンドを追加するには、以下の構文を使用してください。@reboot構文を使用しています:

    
    @reboot /home/linuxconfig/myscript.sh
    

    変更を保存し、完了したらファイルを終了してください。

知っていましたか?
プログラムやスクリプトを毎分、毎週、毎月など自動で開始したい場合、crontabを設定してプログラムを再起動時に実行するだけでなく、他の間隔でも実行することができます。他の間隔でプログラムをスケジュール実行する方法については、例を含むLinuxのcrontabチュートリアルをご覧ください。

systemdを使用する

Raspberry Piのsystemdを使用して、ブート時に実行されるサービスファイルを作成することもできます。

  1. まず、以下の例のようにSystemdサービスファイルを作成します。このファイルは/etc/systemd/system/disk-space-check.serviceとして保存します。

    [Unit]
    After=network.target
    
    [Service]
    ExecStart=/usr/local/bin/disk-space-check.sh
    
    [Install]
    WantedBy=default.target

    後: スクリプトが実行されるべきタイミングをsystemdに指示します。私たちの場合、スクリプトはネットワーク接続の後に実行されます。他の例にはmysql.targetなどが含まれます。
    ExecStart: このフィールドは、起動時に実行される実際のスクリプトへの完全なパスを提供します。
    WantedBy: systemdユニットがどのブートターゲットにインストールされるべきかを示します。

    注意
    Systemdサービスユニットを作成する方法に関する詳細は、man systemd.unitコマンドを実行してください。

  2. Raspberry Piのシステム起動時に実行されるスクリプトを作成します。上記のステップ1で指定したように、私たちの例では新しいスクリプトのパスと名前は/usr/local/bin/disk-space-check.shとなります。
    以下はそのようなスクリプトの例です:

    #!/bin/bash
    
    date > /root/disk_space_report.txt
    du -sh /home/ >> /root/disk_space_report.txt
  3. Systemd サービスユニットとスクリプトの両方に適切な権限を設定します:

    
    sudo chmod 744 /usr/local/bin/disk-space-check.sh
    sudo chmod 664 /etc/systemd/system/disk-space-check.service
    
  4. 次に、サービスユニットを有効にします。

    
    sudo systemctl daemon-reload
    sudo systemctl enable disk-space-check.service
    
  5. これでRaspberry Piを再起動する準備が整いました。システムが起動すると、/rootディレクトリ内のディスクスペース使用状況を含む次のファイルが表示されるはずです:

    
    sudo ls /root/
    disk_space_report.txt
    

GUIを通じてプログラムを自動起動する方法

このセクションで使用するGUIの方法は、GNOME Tweaksのインストールと設定を含みます。このプログラムは、GNOMEデスクトップ環境の上でもない場合でもインストールして使用できるため(Raspberry Piのデフォルトデスクトップ環境はLXDEです)、プログラムを自動的に起動させるためにデスクトップ環境を切り替える必要はありません。

  1. まず、コマンドライン端末を開き、aptパッケージマネージャーを使用してGNOME Tweaksをインストールしましょう(前述のように、GNOMEデスクトップ環境はGNOME Tweaksを使用するために実行されている必要はありません!):

    
    sudo apt update
    sudo apt install gnome-tweaks
    
  2. インストール中に、デフォルトで使用するディスプレイマネージャを選択するように求められることがあります。デフォルトのLXDEデスクトップ環境を維持したい場合は、lightdmを選択してください。GNOMEに切り替えたい場合は、gdm3を自由に選択してください。

  3. インストールが完了したら、このコマンドを実行してGNOME Tweaksを開きます:

    
    gnome-tweaks
    
  4. GNOME Tweaksで、左側の「スタートアップアプリケーション」に移動します。

  5. スタートアップアプリケーションメニューで、プラスサインアイコンをクリックして、自動起動させたい新しいプログラムを追加します。

  6. 自動起動させたいプログラムを選択します。この例では、VLCを選択します。

  7. 完了すると、選択内容が表示され、このウィンドウを閉じることですべての変更が適用されます。

締めくくりの考え

このチュートリアルでは、Raspberry Piでプログラムを自動的に起動するように設定する方法を見ました。これにより、プログラム、サービス、またはスクリプトがRaspberry Piに最初に読み込まれるときにシステムのブート時に自動的に実行されるようになります。このようなタスクを自動化することで、ユーザーやシステム管理者にとって貴重な時間を節約することができます。特に、Raspberry Piが日常的なシステムとして使用されていない場合や、あまりユーザーの介入なしに運用する必要がある場合に役立ちます。

関連記事: