A menudo veo la necesidad de crear algún programa o script que necesita estar siempre ejecutándose en el equipo, y también cuando el equipo se reinicia.

Hay algunas herramientas para resolver este trabajo, pero siempre considere el uso de soluciones integradas en su sistema operativo primero.

Es muy fácil crear un servicio Linux, puede crear un servicio que ejecute cualquier script o programa en cualquier lenguaje de programación, y hacer que el sistema sea persistente y resistente como un servicio en su máquina.

En este artículo vamos a utilizar systemd para gestionar nuestro servicio, está presente en la mayoría de las distribuciones linux como Ubuntu, Debian, OpenSuse…

Creación del programa

Vamos a crear una aplicación web simple en NodeJs de ejemplo. Escuchará en el puerto 9999 y devolverá la fecha actual.

const http - require('http');

http.createServer(function (req, res)
  res.write(new Date().toString());
  res.end();
.escuchar (9999);

Vamos a probar, en el navegador escriba http://localhost:9999.

Ahora que hemos validado que nuestro programa funciona, haremos que siempre se ejecute, si por alguna razón deja de funcionar debe reiniciarse y si se reinicia la máquina el servicio también debe iniciarse.

Creación del servicio

Llamaré a nuestro servicio webdate, con su editor de terminal preferido crea un archivo en la ruta /etc/systemd/system/webdate.service.

[Unit]
Descripción-WebDate - Servicio Web de Datos
After-network.target
StartLimitIntervalSec-0
[Service]
Tipo-simple
Reiniciar siempre
RestartSec-1
Ient0 de usuario
ExecStart/usr/bin/node /path/arquivo.js

[Install]
WantedBy-multi-user.target

Tendrá que cambiar las siguientes variables:

  • Usuario : Pongo a su usuario actual, será el usuario que ejecutará el servicio
  • ExecStart: Esta es la ruta de acceso al script que se ejecutará, debe proporcionar primero la ruta de acceso completa a la línea de comandos en el /usr/bin/node normal y, a continuación, la ruta de acceso completa al archivo.

Ahora para iniciar nuestro servicio sólo tiene que ejecutar el siguiente comando:

systemctl webdate start

Para habilitar el inicio automático cuando el sistema está encendido:

systemctl enable webdate

Listo, ahora el servicio ya se está ejecutando y configurado para reiniciarse en caso de fallo e iniciarse automáticamente junto con el sistema. Para detener el servicio, ejecute el siguiente comando:

systemctl stop webdate
0 0 votos
Nota do Artigo
Subscribe
Notify of

0 Comentários
newest
oldest most voted
Inline Feedbacks
View all comments
wpDiscuz
0
0
Would love your thoughts, please comment.x