Estoy luchando por descubrir por qué rc.local no se ejecutará en el momento del arranque.
El archivo en sí es ejecutable, se llama desde /etc/rc2.d
Además, el archivo desde la línea de comando no devolverá ningún error.
¿Alguna idea de qué más comprobar para descubrir por qué no se ejecuta?
Respuesta1
Como dices que rc.local
se ejecuta correctamente cuando lo ejecutas manualmente, las dos cosas que me vienen a la mente inmediatamente son:
- Algo va mal en el momento del arranque, pero funciona cuando lo ejecuta usted mismo. Quizás esté intentando ejecutar un programa que no está en la RUTA en el momento del arranque.
/etc/rc.local
Realmente no se ejecuta en el arranque.
En ambos casos lo primero que haría es poner algo como
/usr/bin/printenv > /var/tmp/rc.local-$(date +%T)
como la primera línea o rc.local
después de la #!/bin/sh
línea. Eso imprimirá las variables de entorno en un archivo con marca de tiempo cada vez que se ejecute. (No escriba el archivo /tmp
porque se vacía al arrancar). Ejecútelo /etc/rc.local
manualmente y eche un vistazo rápido al archivo resultante (se llamará algo así como /var/tmp/rc.local-21:14:35
). Luego reinicie su sistema.
Deberías tener dos archivos en /var/tmp
(o donde sea) que puedas comparar. Si solo tiene el primer archivo, /etc/rc.local
en realidad no se llama. Si tiene dos archivos, compárelos. El último tendrá unmuyentorno disperso y RUTA. Revise su rc.local
secuencia de comandos y vea si hay algo que esté intentando ejecutar que dependa de alguna variable o algún componente de PATH que no esté en el entorno de arranque. Si encuentra algo, agregue la inicialización necesaria a rc.local
.