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.

Moisés MacíasJul 20 24

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.

Es importante tener en cuenta que si más tarde se modifica la configuración del servicio, es necesario recargar el demonio con el siguiente comando. Primero, se debe detener el servicio:

  sudo systemctl stop kestrel-app.service

Finalmente, debes recargar el demonio con el comando:

  sudo systemctl daemon-reload
Comentarios (0)  
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 24

Creando un servicio de Linux para tu App

Moisés Macías in Linux, Jul 20 24

Instalar y configurar el proxy Nginex.

Moisés Macías in Linux, Aug 08 24
An unhandled error has occurred. Reload 🗙