La respuesta de Xer0FyT es probablemente la forma más sencilla de iniciar automáticamente un programa en el PI. Pero los problemas ocurren una vez que el programa iniciado falla por cualquier motivo porque no se reiniciará, ya que no hay monitoreo del proceso. Yo personalmente recomendaría usar daemontools en su lugar. Es bastante simple de configurar (y está incluido en Raspbian). Básicamente, crea un directorio de servicios que contiene un run
script de shell que inicia su programa. Daemontools se asegurará de que su programa se inicie y reinicie en caso de que falle por algún motivo.
Configurar daemontools es bastante simple. Sólo
apt-get install daemontools daemontools-run
Luego cree su directorio de servicio que contenga un script ejecutable ejecutable:
# 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
Eche un vistazo /service/my-service/run
y edítelo para que inicie su propio programa en lugar de ejecutarse echo
. Una vez hecho esto, enlace simbólicamente ese directorio /etc/service
para que daemontools lo (re) inicie automáticamente:
cd /etc/service
ln -s /service/my-service .
Después de unos 5 segundos, su programa debería ejecutarse. Puede iniciarlo / detenerlo usando
# stop it
$ svc -d /service/my-service
# start it
$ svc -u /service/my-service
También es posible iniciar sesión en (por ejemplo) syslog. Para que la salida de su programa no se pierda. Escribí una publicación de blog más completa sobre esto aquí: https://info-beamer.com/blog/running-info-beamer-in-production
sudo
enrc.local
sí mismo. Se ejecuta con privilegios de root en el arranque. Asegúrese de prestar atención a la parte sobre el uso a&
menos que su programa simplemente haga algo rápidamente y luego se cierre.