El problema
Los scripts/comandos en el archivo de configuración /etc/rc.d/rc.local no podía funcionar en el momento del arranque en un sistema CentOS/RHEL 7. Lo mismo solía funcionar en versiones anteriores de CentOS/RHEL. ¿Está obsoleto o existe una solución para seguir usando este método?
La respuesta
El rc.local el servicio se detiene de manera predeterminada en CentOS/RHEL 7. Si revisa el archivo de configuración etc/rc.d/rc.local, hay sugerencias al respecto.
# cat /etc/rc.d/rc.local #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using this file. # # In contrast to previous versions due to parallel execution during boot # this script will NOT be run after all other services. # # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot. touch /var/lock/subsys/local
La alternativa
1. Con systemd , los guiones de inicio ya no existen. En consecuencia, la ejecución de tareas en el momento del arranque tuvo que cambiar. En CentOS/RHEL 7, el archivo /etc/rc.d/rc.local está controlado por el servicio rc-local.
... [Unit] Description=/etc/rc.d/rc.local Compatibility ConditionFileIsExecutable=/etc/rc.d/rc.local After=network.target [Service] Type=forking ExecStart=/etc/rc.d/rc.local start TimeoutSec=0 RemainAfterExit=yes
2. Por defecto, el archivo /etc/rc.d/rc.local no tiene permiso de ejecución. Agregue los permisos de ejecución a este archivo.
# ls -l /etc/rc.d/rc.local -rw-r--r--. 1 root root 473 Nov 8 00:20 /etc/rc.d/rc.local
# chmod +x /etc/rc.d/rc.local
# ls -l /etc/rc.d/rc.local -rwxr-xr-x. 1 root root 473 Nov 8 00:20 /etc/rc.d/rc.local
3. Habilite el servicio rc.local para asegurarse de que se inicie cada vez que reinicie.
# systemctl enable rc-local
Confirme si el servicio está habilitado:
# systemctl status rc-local.service
3. Luego, inicie el rc-local servicio.
# systemctl start rc-local