Linux

Creando un servicio de Linux para tu App

Si estás en el proceso de publicar tu aplicación en Internet para la puesta en producción, es muy recomendable la creación de un servicio en el sistema operativo.

Mani MacmedJul 20

Si estás en el proceso de publicar tu aplicación en Internet para la puesta en producción, es muy recomendable la creación de un servicio en el sistema operativo para que se ejecute de manera independiente a las conexiones SSH. Crear el servicio no solamente permitirá la ejecución independiente, sino que además te permitirá supervisar, detener e iniciar el servicio con fines administrativos y de mantenimiento.

En linux, el responsable de administrar los servicios del sistema es el Demonio systemd. Este es el proceso inicial que se encarga de arrancar todos los procesos del sistema y por tal motivo se identifica con el PID 1. Mediante los comandos de systemd podrás detener y reinciar tu aplicación .NET para que el reverse proxi Nginex o Apache reenvíen las peticiones HTTP del puerto 80 a Kestrel en localhost 27.0.0.1:#pto. Systemd también proporciona facilidades de registro como conexiones y bitácoras que pueden ser consultadas por el administrador.

Para crear el archivo de configuración del servicio ejecutar el comando:

sudo nano /etc/systemd/system/kestrel-app.service

En donde “kestrel-app.service” es el nombre del nuevo servicio y debería ser sustituido por el un nombre sugerente de nuestra aplicación. Las entradas de atributos de este archivo [Unit], [Service] e [Install], es común definirlas como en el siguiente ejemplo:

[Unit]
Description=Descripción de nuestra aplicación
[Service]
WorkingDirectory=/var/www/app
ExecStart=/usr/bin/dotnet /var/www/app/app.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-ejemplo
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_NOLOGO=true
[Install]
WantedBy=multi-user.target

En estas entradas, generalmente el usuario es root o algún otro que tenga jerarquía similar.

Después de guardar el archivo de configuración se deberá habilitar el servicio con:

sudo systemctl enable kestrel-app.service

Y posteriormente iniciar el servicio:

sudo systemctl start kestrel-app.service

Para verificar que la aplicación ya está ejecutándose, dar la siguiente instrucción:

sudo systemctl status kestrel-app.service

El sistema deberá informar el status con kestrel publicando la aplicación en localhost. Eso es todo, ahora la aplicación estará disponible en Internet de manera indefinida.


Suscríbete al Blog
Obtén las últimas noticias en tu correo!
Leer siguientes

Reencuentro con Linux

Muchos CIO's han confesado que jamás en su vida profesional fueron partidarios del software libre o del código abierto. Pero...

Mani Macmed Jun 19
An unhandled error has occurred. Reload 🗙