SERVICIO AUTORUN - LINUX

ACTIVIDAD

Crearé un servicio que se ejecutará al iniciar el sistema. Este servicio ejecutará un script donde podré definir los programas, otros scripts o servicios que deseo iniciar. Esta práctica es útil para centralizar los servicios y scripts que quiero ejecutar, evitando la necesidad de crear servicios individuales en systemd para cada uno de ellos.

vi /etc/systemd/system/autorun.service
#! /bin/bash

[Unit]

Description = Script de autoarranque en Linux

[Service]

Type=oneshot

ExecStart=/usr/bin/autorun

ExecStop=/usr/bin/autorundown

RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

  • Description del servicio:

    • Type=oneshot: Indica que este servicio se ejecutará una vez y finaliza cuando se complete ExecStart.
    • ExecStart: Especifica que el script /usr/bin/autorun se ejecutara cuando inicie el sistema.
    • ExecStop: Especifica que el script /usr/bin/autorundown se ejecutara cuando se detenga el servicio.
    • RemainAfterExit=yes: Esta configuración indica a systemd que el servicio debe considerarse activo incluso después de que autorun haya finalizado. Esto permite que sus procesos hijos continuen ejecutándose.

autorun - autorundown

Para continuar con este ejemplo compilare nginx.

wget http://nginx.org/download/nginx-1.26.1.tar.gz

tar xvf nginx-1.26.1.tar.gz

cd nginx-1.26.1

./configure --prefix=/opt/nginx #la instalacion la realizare dentro de /opt

make -j8 #para ver la cantidad de nucles (nproc). en mi caso tengo 8 nucleos

make install 

touch "#! /bin/bash" > /usr/bin/autorun
touch "#! /bin/bash" > /usr/bin/autorundown

  • Arbol nginx

ema


echo "/opt/nginx/sbin/nginx" >> /usr/bin/autorun
echo "/opt/nginx/sbin/nginx -s stop" >> /usr/bin/autorundown
  • En autorun se configura el binario nginx para que se ejecute al iniciar el servico.
  • En autorundown se configura el binario nginx seguido del parametro -s stop para detener el servicio.

ema

Test

  • Iniciar servico:
systemctl start autorun.service 

ema

  • Detener el servicio:
systemctl stop autorun.service 

  • Para que los serivicios inicien con el sistema:
systemctl enable autorun.service 

ema