Tengo un solo comando en mi /etc/rc.local
script que se supone que inicia el demonio de actualización para Tiny Tiny RSS durante el inicio, pero el script no se ejecuta durante el inicio. ¿Por qué?
Todo el archivo /etc/rc.local:
#!/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.
/sbin/start-stop-daemon -b -c www-data:www-data -S -x /usr/bin/php /var/www/ttrss/update_daemon2.php -- -quiet
exit 0
/etc/rc.local
es ejecutable:
# ls -l /etc/rc.local
-rwxr-xr-x 1 root root 342 May 25 16:14 /etc/rc.local
/etc/init.d/rc.local
existe y es ejecutable:
# ls -l /etc/init.d/rc.local
-rwxr-xr-x 1 root root 801 Jul 27 2012 /etc/init.d/rc.local
/etc/init.d/rc.local
se supone que debe ejecutarse al inicio para este nivel de ejecución:
# runlevel
N 2
# ls -l /etc/rc2.d/S99rc.local
lrwxrwxrwx 1 root root 18 Sep 22 2012 /etc/rc2.d/S99rc.local -> ../init.d/rc.local
Si llamo manualmente /etc/rc.local desde la línea de comandos, se carga update_daemon ...
# /etc/rc.local
# ps ax | grep update_daemon2.php
2233 ? S 0:00 /usr/bin/php /media/sda5/www/news/update_daemon2.php -quiet
2234 ? S 0:00 /usr/bin/php /media/sda5/www/news/update_daemon2.php -quiet
... que debo recordar hacer cada vez que mi servidor se reinicie hasta que se solucione este problema.
Ya existen preguntas similares , pero hasta ahora no he podido aplicar la información dentro de mi problema específico.
¿Por qué el comando en rc.local no se ejecuta durante el inicio?
requiretty
configuración. Cuando inicia sesión, está ejecutando el script en TTY pero durante el inicio del sistema, no está en TTY. Este enlace puede ayudarlo shell-tips.com/2014/09/08/… Gracias.Respuestas:
rc.local
la secuencia de comandos se cierra si se produce algún error al ejecutar cualquiera de sus comandos (mencione el-e
indicador en#!/bin/sh -e
).Es posible que algunos requisitos previos no se cumplan cuando intenta ejecutar sus comandos cuando se
rc.local
lleva a cabo la ejecución, por lo que la ejecución de su comando falla.Encontré lo mismo al configurar manualmente el gobernador de la CPU y no hacerlo
rc.local
. Aquí está mi solución personalizada, que utilizaupdate-rc.d
para hacer que sus comandos se ejecuten al inicio:myscript.sh
en el directorio/etc/init.d
con un encabezado:#!/bin/sh
sudo chmod +x /etc/init.d/myscript.sh
sudo update-rc.d myscript.sh defaults
Además, puede verificar los
/etc/network/if-up.d
scripts y ver si puede activar sus comandos cuando se inicia la red.fuente
update-rc.d
Tuve un problema similar en rc.local no se ejecuta al inicio
Shades me proporcionó la siguiente respuesta:
Aunque no he probado su solución, creo que suena lógico y funcionará. Sin embargo :
También encontré una solución que agregar un script a ./.config/autostart-scripts/ hará el truco
fuente
rc.local
está apagado, ¿cuál es la alternativa?prueba
sudo sysv-rc-conf
y comprueba sirc.local
está habilitadofuente
sudo apt install sysv-rc-conf
rc.local
ni siquiera está en mi lista de servicios!Asegúrese de que el script rc.local sea ejecutable:
Luego, habilítelo:
Reinicie el sistema o inicie el script manualmente ejecutando:
El estado del servicio se puede mostrar ejecutando:
fuente
rc-local
servicio.Tuvimos este problema en algunos servidores alojados que cargaban reglas FW.
En estos cuadros se reinician MUY rápido y encontramos que simplemente colocamos un "sleep 1" en rc.local antes de que las declaraciones de carga parezcan solucionar el problema. Supongo que dio un poco de tiempo para que se establecieran las interfaces antes de cargar las reglas de FW.
fuente
sleep 1
resuelto mi problema Interesante, tengo muchos servidores pero solo uno tiene este problema.Una vez edité
rc.local
con el Bloc de notas en Windows y comenzó a tener este problema.En este caso, el uso de un editor de texto admite la conversión EOL, como Notepad ++, para convertir el estilo EOL a 'Unix', puede resolverlo.
También puedes hacerlo
:set ff=unix
en Vim.fuente
Encontré en Ubuntu lxc contenedores que si rc.local tiene un shebang perfectamente correcto, por ejemplo
falla, pero si quitas el shebang funciona.
No llegó al fondo de por qué o qué caparazón usa, creo que también bombardea en el primer no cero. (En otras instalaciones de Ubuntu, el shebang adecuado no es un problema)
fuente
Deberá asegurarse de que
/etc/rc.local
se ejecute durante el inicio del servidor con el comando:sudo systemctl enable rc-local.service
fuente