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
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.
Test
- Iniciar servico:
systemctl start autorun.service
- Detener el servicio:
systemctl stop autorun.service
- Para que los serivicios inicien con el sistema:
systemctl enable autorun.service