ラズパイでpythonコードを常に実行させておく

supervisorでプログラムをデーモン化

supervisorの使い方

  • まず、ラズベリーパイにsupervisorをインストールします。ターミナルで以下のコマンドを実行してください。
sudo apt-get install supervisor
  • 次に、プログラムをデーモン化するための設定ファイルを作成します。設定ファイルは/etc/supervisor/conf.d/ディレクトリに置きます。例えば、test.pyというプログラムをデーモン化する場合は、test.confという名前で設定ファイルを作成します。
  • 設定ファイルには、以下のような内容を記述します。
[program:test]
command=python3 /home/pi/test.py
user=pi
autostart=true
autorestart=true
stderr_logfile=/var/log/test.err.log
stdout_logfile=/var/log/test.out.log
  • ここで、各項目の意味は以下のとおりです。
  • [program:test]:プログラムの名前です。任意で構いませんが、設定ファイル名と一致させるとわかりやすいです。
  • command=python3 /home/pi/test.py:プログラムを実行するコマンドです。プログラムのパスは絶対パスで指定してください。
  • user=pi:プログラムを実行するユーザーです。通常はpiで構いませんが、必要に応じて変更してください。
  • autostart=true:起動時にプログラムを自動的に実行するかどうかです。trueにすると自動的に実行されます。
  • autorestart=true:プログラムが異常終了した場合に自動的に再起動するかどうかです。trueにすると自動的に再起動されます。
  • stderr_logfile=/var/log/test.err.log:エラーログファイルのパスです。任意で構いませんが、書き込み権限がある場所に指定してください。
  • stdout_logfile=/var/log/test.out.log:標準出力ログファイルのパスです。任意で構いませんが、書き込み権限がある場所に指定してください。
  • 設定ファイルを保存したら、supervisorを再起動して設定を反映させます。ターミナルで以下のコマンドを実行してください。
sudo service supervisor restart
  • これで、プログラムがデーモン化されました。supervisorctlコマンドでプログラムの状態や操作ができます²³。