Al iniciar un sistema Linux se pone en funcionamiento una serie de eventos. Si todo sucede tal como se espera, en cuestión de segundos el sistema operativo estará listo para su uso. A continuación, cuando iniciamos sesión (y luego cuando la cerramos) sucede lo mismo. En este post mostraremos cómo correr scripts personalizados al bootear el equipo, y en el próximo cómo hacerlo al iniciar o cerrar sesión.
Los conceptos explicados en este post son aplicables a cualquier distribución hasta donde tengo conocimiento. En particular, asumimos que estamos usando Bash como shell por defecto. Otras shells deben funcionar similarmente; sin embargo, ante tal caso aconsejo consultar la documentación de las mismas.
Correr scripts al iniciar el sistema
En Linux hay al menos dos métodos para realizar este objetivo. Utilizaremos el primero para ejecutar script1.sh y el segundo para correr script2.sh. En ambos casos, por simplicidad, ilustramos el concepto al escribir una cadena de texto a un archivo. Sin embargo, el mismo principio aplica para acciones más complejas.
1) Usar cron
Además de utilizar el formato típico para establecer el momento en que se debe ejecutar un script, cron permite el uso de la directiva @reboot. Al utilizar la misma seguida por la ruta absoluta al script, hará que el mismo se ejecute al reiniciar o encender el equipo. Agreguemos la siguiente entrada a nuestro crontab:
@reboot /home/gacanepa/script1.sh
Si utilizamos este método, tenemos que asegurarnos de que el servicio de cron esté corriendo. Además, es necesario que ya sea en el script o en nuestro archivo crontab agreguemos las variables de entorno apropiadas (si es que necesitamos alguna).
2) Usar /etc/rc.d/rc.local
Este archivo es leído durante el inicio, y podemos utilizarlo para correr el script que deseemos ejecutar. Para hacerlo, debemos incluir la ruta al script al final del archivo, y otorgarle permisos de ejecución previamente a ambos:
chmod +x /etc/rc.d/rc.local chmod +x /home/gacanepa/script2.sh
Teniendo los siguientes scripts:
script1.sh:
#!/bin/bash DATE=$(date +'%F %H:%M:%S') DIR=/home/gacanepa echo "La hora actual es $DATE" > $DIR/file1.txt
script2.sh:
#!/bin/bash SITIO="Blog.carreralinux.com" DIR=/home/gacanepa echo "$SITIO es el mejor sitio de información sobre Linux en castellano... No te olvides de agregarnos a tus favoritos." > $DIR/file2.txt
En la Fig. 1 podemos ver el resultado luego de reiniciar el equipo:
Espero que este post les haya resultado de utilidad. En el próximo aprenderemos cómo ejecutar scripts al iniciar o cerrar sesión. ¡No se lo pierdan!