Xer0FyTによる答えは、おそらくPIでプログラムを自動的に開始する最も簡単な方法です。ただし、プロセス監視がないため、再起動されないため、何らかの理由で開始されたプログラムがクラッシュすると、問題が発生します。個人的には、代わりにdaemontoolsを使用することをお勧めします。セットアップは非常に簡単です(Raspbianに含まれています)。基本的にrun
、プログラムを起動するシェルスクリプトを含むサービスディレクトリを作成します。デーモンツールは、何らかの理由でクラッシュした場合にプログラムが開始および再起動されることを確認します。
daemontoolsのセットアップはとても簡単です。ただ
apt-get install daemontools daemontools-run
次に、実行可能な実行スクリプトを含むサービスディレクトリを作成します。
# create the service directory
mkdir -p /service/my-service
# create the run script
cat > /service/my-service/run <<EOF
#!/bin/sh
echo "I'm an example service executed by daemontools"
sleep 1
# Replace those 2 lines with a real call to your program like this:
# exec /my/program.py --arguments
EOF
# make it executable
chmod 755 /service/my-service/run
を見て/service/my-service/run
編集して、を実行する代わりに独自のプログラムを起動しますecho
。それが完了したら、そのディレクトリをシンボリックリンクし/etc/service
てdaemontoolsが自動的に(再)起動するようにします:
cd /etc/service
ln -s /service/my-service .
約5秒後にプログラムが実行されます。を使用して開始/停止できます
# stop it
$ svc -d /service/my-service
# start it
$ svc -u /service/my-service
syslogなどにログを記録することもできます。したがって、プログラムの出力は失われません。これについては、https://info-beamer.com/blog/running-info-beamer-in-productionでより完全なブログ記事を書きました。
sudo
にrc.local
自分自身。起動時にルート権限で実行されます。&
プログラムがすぐに何かをして終了しない限り、使用に関する部分に注意を払ってください。