En algunos Linux (Centos y RH, por ejemplo), /etc/rc.local
inicialmente es solo un enlace simbólico a /etc/rc.d/rc.local
. En esos sistemas, si el enlace simbólico está roto y /etc/rc.local
es un archivo separado, luego cambia a /etc/rc.local
no se verá en el arranque:el proceso de arranque ejecutará la versión en /etc/rc.d
. (Funcionarán si uno ejecuta /etc/rc.local
manualmente, pero no se ejecutará en el arranque).
Parece que en el sistema de dimadima, son archivos separados, pero /etc/rc.d/rc.local
llamadas /etc/rc.local
El enlace simbólico de /etc/rc.local
al 'real' en /etc/rc.d
se puede perder si se mueve rc.local
a un directorio de respaldo y lo vuelve a copiar o lo crea desde cero, sin darse cuenta del original en /etc
era solo un enlace simbólico.
En este ejemplo de un script rc.local, uso la redirección io en la primera línea de ejecución a mi propio archivo de registro:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exec 1>/tmp/rc.local.log 2>&1 # send stdout and stderr from rc.local to a log file
set -x # tell sh to display commands before execution
/opt/stuff/somefancy.error.script.sh
exit 0
En Ubuntu noté que hay 2 archivos. El verdadero es /etc/init.d/rc.local
; parece el otro /etc/rc.local
es falso?
Una vez que modifiqué el correcto (/etc/init.d/rc.local
) se ejecutó tal como se esperaba.
Terminé con advenedizo, que funciona bien.