Cómo confirmar si autorun.sh realmente se ejecuta al iniciar
Productos aplicables
- Any QNAP NAS running QTS or QuTS hero that supports custom
autorun.shscripts
Escenario
- Usted se refiere a Ejecutar su propia aplicación al inicio y creó un script
autorun.shbajo/tmp/configcon permisos ejecutables (-rwxr-xr-x). - La función de ejecución automática está habilitada en Panel de control > Hardware.
- Después de reiniciar, las acciones esperadas no ocurren. No está claro si:
autorun.shnunca se activó, oautorun.shse ejecutó, pero algunos comandos fallaron debido a diferencias de tiempo o de entorno.
- Ejecutar el mismo script manualmente a través de SSH funciona como se espera, lo que hace que la causa raíz sea más difícil de identificar.
Solución
La forma más directa de confirmar que autorun.sh se ejecuta al iniciar es agregar un comando de timbre y una entrada de registro al comienzo del script.
- Si escucha un pitido después del inicio,
autorun.shfue activado. - Si escucha un pitido pero la funcionalidad principal no funciona, los comandos posteriores en el script pueden estar fallando porque una interfaz de red, sistema de archivos o servicio requerido no está listo.
autorun.shestá almacenado en/tmp/config/autorun.sh.- El archivo es ejecutable:
-rwxr-xr-x. - La función de ejecución automática está habilitada en Panel de control > Hardware.
Para implementar esto, primero reduzca autorun.sh a una versión mínima observable:
#!/bin/bash
# Prueba mínima de ejecución
echo "autorun.sh iniciado en $(date)" >> /tmp/autorun.log
hal_app --se_buzzer enc_id=0,mode=0Comandos de timbre
- Pitido corto:
hal_app --se_buzzer enc_id=0,mode=0 - Pitido largo:
hal_app --se_buzzer enc_id=0,mode=1
Uso recomendado:
- Coloque dos pitidos cortos al principio: indica que
autorun.shha comenzado y dos pitidos cortos al final de autorun.sh.
#!/bin/bash
echo "autorun.sh iniciado a las $(date)" >> /tmp/autorun.log
hal_app --se_buzzer enc_id=0,mode=0
hal_app --se_buzzer enc_id=0,mode=0
# Su configuración real a continuación
sleep 5
# ... sus comandos aquí ...
echo "autorun.sh completado a las $(date)" >> /tmp/autorun.log
hal_app --se_buzzer enc_id=0,mode=0
hal_app --se_buzzer enc_id=0,mode=0Interpretación de los resultados
Nota: Los sistemas NAS de QNAP emiten sonidos de pitido en puntos específicos durante el arranque normal:
- Pitido de encendido: Pitido corto único cuando se aplica energía (muy temprano en el arranque, antes de que se ejecute autorun.sh )
- Pitido de inicio del sistema Pitido corto único cuando el sistema operativo comienza a cargarse ( antes de que se ejecute autorun.sh )
- Pitido de sistema listo: Generalmente un pitido largo después de que el sistema operativo se ha inicializado y los servicios están comenzando ( después de que se ejecute autorun.sh )
Para distinguir los pitidos de autorun.sh de los pitidos de arranque del sistema, puede agregar combinaciones de pitidos diferentes en su autorun.sh durante la etapa de depuración.
Además, también puede ver /tmp/autorun.log para verificar si autorun.sh se ejecuta.
Advertencias
autorun.shse ejecuta con privilegios elevados durante el arranque. Asegúrese de que la sintaxis sea correcta para evitar la inestabilidad del sistema.- El zumbador confirma que el script fue activado, pero no garantiza que cada comando dentro de él haya tenido éxito.