Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
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.
- Crea el archivo
rc.local:sudo nano /etc/rc.local - 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 scriptsexit 0 - 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:
- Edita el archivo
rc.local:sudo nano /etc/rc.local - 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.shexit 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:
- Crea el archivo de servicio:
sudo nano /etc/systemd/system/rc-local.service - Añade el siguiente contenido para crear un servicio compatible con
rc.local:[Unit]Description=/etc/rc.local CompatibilityConditionPathExists=/etc/rc.local[Service]Type=forkingExecStart=/etc/rc.local startTimeoutSec=0RemainAfterExit=yesGuessMainPID=no[Install]WantedBy=multi-user.target - Recarga los servicios del sistema:
sudo systemctl daemon-reload - Activa el servicio para que se inicie al encender el sistema:
sudo systemctl enable rc-local - 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:
- Crea el script:
nano /home/usuario/mi_script.sh - Añade el siguiente contenido:
#!/bin/bash echo "Hola Mundo - $(date)" >> /home/usuario/log.txt - Haz que el script sea ejecutable:
chmod +x /home/usuario/mi_script.sh - Edita el archivo
rc.local:sudo nano /etc/rc.local - Añade el script al
rc.local:#!/bin/sh -e/home/usuario/mi_script.shexit 0 - Habilita y ejecuta el servicio
rc-localcomo 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.