GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo ejecutar scripts/comandos usando /etc/rc.d/rc.local en CentOS/RHEL 7

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


Cent OS
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  2. ¿Cómo se actualiza /etc/motd?

  3. CentOS/RHEL 7:cómo seguir el orden de montaje en /etc/fstab

  4. CentOS / RHEL:Cómo registrar todos los comandos LVM

  5. Cómo deshabilitar la combinación de teclas "alt+ctrl+Del" que provoca el reinicio en CentOS/RHEL 4,5

Cómo crear un repositorio YUM local en CentOS 7 / RHEL 7 usando DVD

Cómo instalar Flameshot en RHEL/CentOS usando Snapcraft

Cómo instalar osTicket en CentOS 8 /RHEL 8

CentOS / RHEL 7:cómo sincronizar chrony con el reloj local

Cómo systemd-tmpfiles limpia /tmp/ o /var/tmp (reemplazo de tmpwatch) en CentOS/RHEL 7

CentOS / RHEL 7:cómo recuperarse de una entrada raíz eliminada en archivos /etc/shadow y/o /etc/passwd