Cómo ejecutar automáticamente un script de shell durante el arranque en systemd Linux

La siguiente configuración discutirá un ejemplo básico sobre cómo ejecutar un script de shell durante el arranque en systemd Linux. Hay tal vez varias razones por las que es posible que desee ejecutar la secuencia de comandos de shell durante el arranque de Linux como, por ejemplo, para iniciar un servicio personalizado en particular, comprobar el espacio en disco, crear una copia de seguridad, etc.
El siguiente ejemplo servirá como una plantilla básica para ser modificada posteriormente para adaptarse a sus necesidades específicas. En el siguiente ejemplo comprobaremos el espacio en disco de un directorio /home/ durante un tiempo de arranque y escribiremos un informe en el directorio /root/.

Unidad de servicio systemd

Primero, necesitamos crear un script de inicio systemd eg.disk-space-check.servicey colocarlo en el directorio /etc/systemd/system/. Usted puede encontrar el ejemplo de dicha secuencia de comandos de inicio systemd abajo:

After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
  • Después: Indica a systemd cuándo debe ejecutarse el script. En nuestro caso el script se ejecutará después de que la base de datos mysql se haya iniciado. Otro ejemplo podría ser network.target etc.
  • ExecStart: Este campo proporciona una ruta completa el script real para ser ejecutado
  • WantedBy: En qué destino de arranque debe instalarse la unidad systemd

Lo anterior es un mínimo absoluto que debe contener nuestra unidad de servicio systemd para ejecutar nuestro script en el arranque. Para más información y opciones a utilizar ver la página del manual de systemd.service:

$ man systemd.service

Script de shell de arranque

A continuación, creamos nuestro script de shell personalizado para que se ejecute durante el arranque de systemd. La ubicación y el nombre del script ya están definidos por la unidad de servicio como /usr/local/bin/disk-space-check.sh. El contenido del script puede ser simple como:

#!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
Buscando Analista de Sistemas Linux !
El Instituto Geofísico de la UAF, está buscando un Analista de Sistemas Linux con experiencia para unirse a su equipo de analistas e ingenieros de ciberinfraestructura de investigación. UBICACIÓN: Fairbanks, Alaska, USA
APPLY NOW

Configuración e Instalación

Antes de reiniciar nuestro sistema necesitamos hacer nuestro script ejecutable:

# chmod 744 /usr/local/bin/disk-space-check.sh

A continuación, instalamos la unidad de servicio systemd y la habilitamos para que se ejecute en el arranque:

# chmod 664 /etc/systemd/system/disk-space-check.service# systemctl daemon-reload# systemctl enable disk-space-check.serviceCreated symlink from /etc/systemd/system/default.target.wants/disk-space-check.service to /etc/systemd/system/disk-space-check.service.

Si quieres probar tu script antes de reiniciar ejecuta:

# systemctl start disk-space-check.service# cat /root/disk_space_report.txt Thursday 7 July 11:30:25 AEST 20161.5G /home/

Todo listo. Después de reiniciar su sistema Linux la unidad systemd anterior invocará el script de shell para ser ejecutado durante el tiempo de arranque.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.