Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Guía para configurar un script en rc.local para que se ejecute en el inicio en Linux

Loading

En algunos sistemas basados en Linux, es posible configurar scripts personalizados para que se ejecuten durante el inicio del sistema utilizando el archivo rc.local. A continuación se detallan los pasos para lograrlo:

1. Comprobar si existe rc.local

En distribuciones más recientes, como las basadas en systemd (Ubuntu 16.04+ y otras), el archivo rc.local puede no estar habilitado por defecto.

Para verificar si rc.local existe, puedes ejecutar:

ls /etc/rc.local

Si el archivo existe, el comando anterior te mostrará la ruta del archivo. Si no existe, puedes crearlo.

2. Crear o habilitar el archivo rc.local

Si el archivo no existe o está deshabilitado, puedes crearlo y asegurarte de que tenga los permisos correctos.

  1. Crea el archivo rc.local:

    sudo nano /etc/rc.local
  2. Añade el siguiente contenido básico al archivo si está vacío. Esto incluye el shebang (#!/bin/sh) que indica el intérprete de comandos:

    #!/bin/sh -e
    # rc.local
    # Este script se ejecutará después de que el sistema haya terminado de iniciar.

    # Añade aquí tus comandos o scripts

    exit 0
  3. Haz el archivo ejecutable:

    sudo chmod +x /etc/rc.local

3. Ejecutar un script desde rc.local

Puedes añadir cualquier comando o script que desees ejecutar al inicio del sistema antes de la línea exit 0. Por ejemplo, si tienes un script llamado mi_script.sh en /home/usuario/, puedes agregar la ruta completa del script en el archivo rc.local.

Ejemplo:

Supongamos que queremos ejecutar el script /home/usuario/mi_script.sh al iniciar el sistema:

  1. Edita el archivo rc.local:

    sudo nano /etc/rc.local
  2. Añade la ruta del script antes de la línea exit 0:

    #!/bin/sh -e
    # rc.local

    # Ejecuta el script personalizado
    /home/usuario/mi_script.sh
    exit 0

Asegúrate de que tu script mi_script.sh también sea ejecutable:

sudo chmod +x /home/usuario/mi_script.sh

4. Habilitar rc-local.service (para sistemas con systemd)

Si tu sistema usa systemd, es posible que necesites habilitar el servicio rc-local manualmente. Aquí te muestro cómo hacerlo:

  1. Crea el archivo de servicio:

    sudo nano /etc/systemd/system/rc-local.service
  2. Añade el siguiente contenido para crear un servicio compatible con rc.local:

    [Unit]
    Description=/etc/rc.local Compatibility
    ConditionPathExists=/etc/rc.local

    [Service]
    Type=forking
    ExecStart=/etc/rc.local start
    TimeoutSec=0
    RemainAfterExit=yes
    GuessMainPID=no

    [Install]
    WantedBy=multi-user.target
  3. Recarga los servicios del sistema:

    sudo systemctl daemon-reload
  4. Activa el servicio para que se inicie al encender el sistema:

    sudo systemctl enable rc-local
  5. Inicia el servicio:

    sudo systemctl start rc-local

5. Verificar el estado de rc.local

Puedes verificar que rc.local se ha ejecutado correctamente o si ha ocurrido algún error con el siguiente comando:

sudo systemctl status rc-local

Esto te mostrará el estado del servicio y si se ejecutó con éxito.

6. Ejemplo práctico completo

Si tienes un script llamado mi_script.sh que imprime "Hola Mundo" en un archivo de log y quieres que se ejecute al inicio:

  1. Crea el script:

    nano /home/usuario/mi_script.sh
  2. Añade el siguiente contenido:

    #!/bin/bash echo "Hola Mundo - $(date)" >> /home/usuario/log.txt
  3. Haz que el script sea ejecutable:

    chmod +x /home/usuario/mi_script.sh
  4. Edita el archivo rc.local:

    sudo nano /etc/rc.local
  5. Añade el script al rc.local:

    #!/bin/sh -e
    /home/usuario/mi_script.sh
    exit 0
  6. Habilita y ejecuta el servicio rc-local como se mencionó antes.

7. Conclusión

Usar rc.local es una manera sencilla y directa de hacer que scripts personalizados se ejecuten al iniciar el sistema. Sin embargo, para distribuciones modernas que usan systemd, es importante asegurarse de que el servicio rc-local esté habilitado correctamente. Esto garantiza que tus scripts se ejecuten sin problemas al inicio.

You may also like...