n sistemas operativos basados en Linux, ejecutar comandos al inicio o después de un reinicio es una tarea común. Tradicionalmente, esto se lograba utilizando el archivo rc.local
. Sin embargo, con la modernización de sistemas y la transición hacia systemd
, este archivo ya no está habilitado por defecto en muchas distribuciones. Una alternativa eficiente y sencilla para lograr esto es usando crontab
.
En este artículo, aprenderemos cómo configurar un comando para que se ejecute automáticamente después de un reinicio utilizando la funcionalidad @reboot
en crontab
.
¿Qué es @reboot
en crontab
?
crontab
es un administrador de tareas programadas en Linux que permite ejecutar comandos o scripts a intervalos definidos o en momentos específicos. Uno de los parámetros especiales que ofrece es @reboot
, que se utiliza para ejecutar comandos automáticamente cada vez que el sistema se inicia.
Configuración Paso a Paso
1. Editar el Archivo de Crontab
Para configurar un comando que se ejecute al reiniciar el sistema, primero debemos acceder al archivo de crontab
del usuario. Ejecuta el siguiente comando en la terminal:
crontab -e
Esto abrirá el editor de texto configurado para crontab
. Si es la primera vez que accedes, el sistema te pedirá seleccionar un editor de tu preferencia (por ejemplo, nano
o vim
).
2. Añadir la Tarea al Archivo
Dentro del archivo de crontab
, añade una línea con la siguiente sintaxis:
@reboot /ruta/al/script.sh
Por ejemplo, si tienes un script ubicado en /usr/local/sbin/script.sh
, la línea quedaría así:
@reboot /usr/local/sbin/script.sh
3. Guardar los Cambios
Una vez que hayas añadido la línea, guarda y cierra el archivo. Esto dependerá del editor que estés usando:
- En
nano
, presionaCtrl + O
, luegoEnter
para guardar, yCtrl + X
para salir. - En
vim
, presionaEsc
, escribe:wq
y luego presionaEnter
.
4. Verificar la Configuración
Para confirmar que la tarea se agregó correctamente, puedes listar las tareas programadas ejecutando:
crontab -l
Deberías ver la línea que acabas de añadir.
Ejemplo Práctico
Supongamos que deseas ejecutar un script que registra la hora del reinicio del sistema en un archivo de log. Puedes crear el script log_reboot.sh
con el siguiente contenido:
#!/bin/bash
echo "Sistema reiniciado: $(date)" >> /var/log/reboot.log
Luego, asegúrate de que el script tenga permisos de ejecución:
chmod +x /ruta/a/log_reboot.sh
Finalmente, añádelo a crontab
con la siguiente línea:
@reboot /ruta/a/log_reboot.sh
Consideraciones Finales
- Permisos: Asegúrate de que el usuario que configura
crontab
tiene permisos para ejecutar el script o comando. - Rutas Absolutas: Siempre utiliza rutas absolutas para evitar problemas al ejecutar los comandos.
- Logs: Es útil redirigir la salida de tus comandos a un archivo de log para depurar posibles errores.
Con este método, puedes configurar tareas al inicio del sistema de forma sencilla, sin necesidad de depender de rc.local
o crear servicios personalizados en systemd
.