Cómo ejecutar comandos automáticamente durante el reinicio en Linux

Publicidad

Siempre ha existido la intriga de saber qué es lo que está sucediendo en nuestro ordenador mientras el sistema Linux arranca e inicia la sesión de usuario.

Al presionar el botón de encendido en nuestro ordenador físico o iniciar una máquina virtual, se pone en marcha una serie de eventos que conducen a un sistema totalmente funcional, a veces en menos de un minuto. Lo mismo ocurre cuando se cierra la sesión y/o se apaga el sistema operativo.

Lo que hace esto más interesante y divertido, es el hecho de que nosotros como usuarios podemos manejar el sistema operativo para ejecutar ciertas acciones cuando la computadora prende y cuando se inicia o cierra la sesión del usuario.

Y esta duda es la que nos llevó a escribir este artículo para explicar los distintos métodos, o al menos los tradicionales, para lograr ejecutar esta tarea en Linux.

En primer lugar, se debe explicar que tanto el uso de Bash como shell es primordial para los eventos de inicio de sesión y cierre de la misma, si usted utiliza un método distinto a este, algunos de estos métodos pueden, o no, funcionar en su PC, pues a veces es un factor que varía.

Por lo que, si al leer esto se generan algunas dudas, es recomendable leer sobre las especificaciones de su Shell.

Publicidad

La ejecución de secuencias de comandos de Linux durante el reinicio, o el inicio, será nuestro punto de partida. Existen dos métodos tradicionales para ejecutar un comando o ejecutar scripts durante el inicio:

El primer método es utilizando cron. Además del formato habitual (minuto/hora/día del mes/ mes/día de la semana) el cual es ampliamente utilizado para indicar un horario, cron scheduler también permite el uso de @reboot.

Esta directiva, seguida por la ruta absoluta o directa al script, hará que se ejecute cuando se inicia la computadora.

Sin embargo, hay dos advertencias en este enfoque:

  • El daemon cron debe estar en funcionamiento (lo que es el caso en circunstancias normales).
  • El script o el archivo crontab debe incluir las variables de entorno (si las hubiere) que sean necesarias (consulte este subproceso de StackOverflow para obtener más detalles).

Luego, tenemos el segundo método que es utilizando /etc/rc.d/rc.local. Este método es válido incluso para distribuciones basadas en systemd. Para que este método funcione, se debe conceder permisos de ejecución a /etc/rc.d/rc.local de la siguiente manera:

# Chmod + x /etc/rc.d/rc.local

Y después hay que agregar el script en la parte inferior del archivo. A continuación, se muestra un ejemplo bien claro del uso de cómo hacerlo utilizando un trabajo de cron (cron job) y rc.local, respectivamente, y sus respectivos resultados.

#! / Bin / bash

DATE = $ (fecha + ‘% F% H:% M:% S’)

DIR = / inicio / gacanepa

Echo “Fecha y hora actuales: $ DATE”> $ DIR / file1.txt

Y el segundo es:

#!/bin/bash

SITE=”artescritorio.com”

DIR=/home/gacanepa

echo “$SITE rocks… añádanos a sus marcadores.” > $DIR/file2.txt

Hay que tener en cuenta que ambos scripts deben tener, previamente, permisos de ejecución:

$ Chmod + x /home/gacanepa/script1.sh

Ahora, solo queda explicar la ejecución de secuencias de comandos de Linux al inicio de sesión y cierre de sesión.

Para ejecutar un script al iniciar o cerrar sesión, utilice ~ .bash_profile y ~ .bash_logout, respectivamente. Lo más probable es que necesite crear el último archivo manualmente, simplemente suelte una línea que invoque su script en la parte inferior de cada archivo de la misma manera que antes y así quedaría listo. 😉

En este artículo, hemos explicado cómo ejecutar la secuencia de comandos en el reinicio, inicio de sesión y cierre de sesión. Por supuesto, estas son las maneras más comunes, pero sí existen muchas otras más que cualquier usuario podría encontrar más cómoda.