
Tengo un programa en C++ que quiero que se ejecute en el momento del arranque en una distribución yocto.
Intenté agregar un script simple en /etc/init.d/ llamado test.sh en el que solo tengo:
echo "start my program"
ProgramName
con "ProgramName", mi programa se ejecuta cuando lo ejecuto en un Shell. Si ejecuto este nuevo script, mi programa se ejecutará.
Lo agregué como enlace simbólico a la carpeta rc5. Intenté reiniciar pero no pasa nada. ¿Necesito hacer algo más?
¿Cómo puedo hacer que esto funcione con una receta? Al final, me gustaría tener esto automatizado.
Respuesta1
Una solución simple para ejecutar un programa en el arranque es crear una entrada crontab como esta:
@reboot /path/to/program
Esto suele ser adecuado para programas que no son demonios del sistema.
La @reboot
etiqueta garantizará que el programa se inicie cuando el sistema se haya iniciado y sea compatible conmayoríaimplementaciones de cron:
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
Para obtener más información, consulte man 5 crontab
en su sistema.
Respuesta2
por favor, compruebeesta pregunta/respuestapara una discusión similar. Y agregue el encabezado en su script:
#!/bin/sh
### BEGIN INIT INFO
# Provides:
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Sample_GT02 daemon startup script
# Description: Sample Server for GT02 class
### END INIT INFO
Respuesta3
En tu receta agrega:
- INITSCRIPT_NAME y agregue el nombre de archivo del script de inicialización que necesita instalar en etc/init.d.
- INITSCRIPT_PARAMS y especifique el nivel de ejecución de su script y los niveles de inicio en los que debe ejecutarse el script.
Por ejemplo, puede consultar el archivo en "poky/meta/recipes-connectivity/connman/connman.inc". Verá el siguiente ejemplo de uso.
INITSCRIPT_NAME = "connman"
INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ."
En el fragmento anterior, el script connman se está instalando en ect/init.d y el script tiene un nivel de ejecución de 05, el script comienza en los niveles iniciales 2, 3 y 5, y se detiene en los niveles 0, 1 y 6.