Siempre estoy fascinado por las cosas que suceden detrás de escena cuando inicio un sistema Linux e inicio sesión. Al presionar el botón de encendido en un metal desnudo o iniciar una máquina virtual, pone en marcha una serie de eventos que conducen a un sistema completamente funcional, a veces en menos de un minuto. Lo mismo ocurre cuando cierra la sesión y/o apaga el sistema.
Lo que hace que esto sea más interesante y divertido es el hecho de que puede hacer que el sistema operativo ejecute ciertas acciones cuando se inicia y cuando inicia o cierra sesión.
En este artículo distro-agnóstico discutiremos los métodos tradicionales para lograr estos objetivos en Linux.
Nota :Asumiremos el uso de Bash como shell principal para eventos de inicio y cierre de sesión. Si usa uno diferente, algunos de estos métodos pueden o no funcionar. En caso de duda, consulte la documentación de su shell.
Ejecución de secuencias de comandos de Linux durante el reinicio o el inicio
Hay dos métodos tradicionales para ejecutar un comando o ejecutar scripts durante el inicio:
Método n.° 1:usar un trabajo cron
Además del formato habitual (minuto/hora/día del mes/mes/día de la semana) que se usa mucho para indicar una programación, el programador cron también permite el uso de @reboot
. Esta directiva, seguida de la ruta absoluta al script, hará que se ejecute cuando arranque la máquina.
Sin embargo, hay dos advertencias a este enfoque:
- a) el demonio cron debe estar ejecutándose (que es el caso en circunstancias normales), y
- b) la secuencia de comandos o el archivo crontab deben incluir las variables de entorno (si las hay) que se necesitarán (consulte este hilo de StackOverflow para obtener más detalles).
Método n.º 2:utilice /etc/rc.d/rc.local
Este método es válido incluso para distribuciones basadas en systemd. Para que este método funcione, debe otorgar permisos de ejecución a /etc/rc.d/rc.local
de la siguiente manera:
# chmod +x /etc/rc.d/rc.local
y agregue su secuencia de comandos al final del archivo.
La siguiente imagen muestra cómo ejecutar dos scripts de muestra (/home/gacanepa/script1.sh
y /home/gacanepa/script2.sh
) usando un cron trabajo y rc.local , respectivamente, y sus respectivos resultados.
#!/bin/bash DATE=$(date +'%F %H:%M:%S') DIR=/home/gacanepa echo "Current date and time: $DATE" > $DIR/file1.txtscript2.sh:
#!/bin/bash SITE="Tecmint.com" DIR=/home/gacanepa echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt
Tenga en cuenta que ambos scripts deben tener permisos de ejecución previamente:
$ chmod +x /home/gacanepa/script1.sh $ chmod +x /home/gacanepa/script2.sh
Ejecución de secuencias de comandos de Linux al iniciar y cerrar sesión
Para ejecutar un script al iniciar o cerrar sesión, use ~.bash_profile
y ~.bash_logout
, respectivamente. Lo más probable es que deba crear este último archivo manualmente. Simplemente coloque una línea invocando su secuencia de comandos en la parte inferior de cada archivo de la misma manera que antes y estará listo para comenzar.
Resumen
En este artículo, hemos explicado cómo ejecutar un script al reiniciar, iniciar sesión y cerrar sesión. Si puede pensar en otros métodos que podríamos haber incluido aquí, siéntase libre de usar el formulario de comentarios a continuación para señalarlos. ¡Esperamos saber de usted!