Section courante

A propos

Section administrative du site

Service Node Windows pour l'exécution de l'application Node.js

Les services Windows sont une composante essentiel du système d'exploitation Windows. Elle offre une meilleure intégration au système d'exploitation Windows comme PM2 par exemple. Il permet la création et la gestion de processus de longue durée. En outre, contrairement aux logiciels classiques qu'un utilisateur final lance et ne s'exécute que lorsque l'utilisateur est en ligne, les services Windows démarrent sans aucune intervention de l'utilisateur et continuent de fonctionner longtemps après la déconnexion de l'utilisateur. Les services s'exécutent en arrière-plan et interviennent généralement lorsque la machine démarre. Cependant, la récupération de service intégrée pour les services Windows est assez limitée et ne peut pas être facilement configurée à partir du code. C'est là que le service node-windows a son avantage. Le node-windows crée un enveloppe autour du script Node.js. Cette enveloppe est responsable du redémarrage d'un service défaillant de manière intelligente et configurable.

Par exemple, si votre script plante en raison d'une erreur inconnue, node-windows tentera de le redémarrer. Par défaut, cela se produit toutes les secondes. Cependant, si le script a une faille fatale le faisant planter à plusieurs reprises, il ajoute une surcharge inutile au système. Le node-windows gère cela en augmentant l'intervalle de temps entre les redémarrages et en plafonnant le nombre maximum de redémarrages.

Flexibilité dans la configuration des services

Appuyez sur les touches Windows+R pour ouvrir la boîte de dialogue Exécuter (ou Run), tapez services.msc, appuyez sur Enter et la fenêtre Services s'ouvrira. Voici les principales caractéristiques des services Windows :

Ainsi, ces services rendent le travail efficace et pratique, c'est pourquoi un service pour l'application Node.js est souvent nécessaire.

Application Node.js est un Service

La configuration d'une application en tant que service présente de nombreux avantages. L'application Node.js démarre au démarrage et s'exécute en continu tant que votre système est allumé. Pour exécuter l'application Node.js en tant que service, vous avez besoin d'un paquet supplémentaire. Le paquet effectuera le travail réel de démarrage et de redémarrage de votre application. Un de ces paquets est le "node-windows" de npm. Ce paquet vous aide à exécuter l'application Node.js en tant que service.

Module node-windows de npm

Le module node-windows a un utilitaire pour exécuter des scripts Node.js en tant que services Windows. Installez node-windows avec npm. La méthode recommandée consiste à utiliser l'indicateur global (-g), la raison étant que lorsque vous utilisez l'indicateur global (-g), vous n'avez pas besoin d'installer node-windows pour chaque nouveau projet dans le système que vous utilisez. Voici la commande à utiliser :

npm install -g node-windows

Il est aussi possible d'utiliser des node-windows sans le drapeau global avec la commande suivante :

npm install node-windows

Veuillez noter que, comme tous les services Windows, sa création nécessite des privilèges d'administrateur. Pour créer un service avec node-windows, vous devez créer un script comme ceci avec un nom comme par exemple install-node-service.js :

  1. var Service = require("node-windows").Service;
  2.  // Créer un nouvel objet de service
  3.  var svc = new Service({
  4.        name:"GladirTest",
  5.        description: "Test Gladir Service",
  6.        script: "monscripte.js"
  7.  });
  8.  
  9.  // Écoutez l'événement «install», indiquant que le processus est disponible en tant que service.
  10.  
  11.  svc.on("install",function(){
  12.                svc.start();
  13.  });
  14.  
  15.  svc.install();

Le code ci-dessus consiste à créer un nouvel objet Service, à fournir également un joli nom et une description. L'attribut script identifie le script Node.js devant s'exécuter en tant que service (dans ce cas, install-node-service.js). Après l'exécution, le script sera visible à partir de l'utilitaire Windows Services comme indiqué ci-dessous.

Pour désinstaller le service, vous n'avez qu'à remplacer «svc.install();» par «svc.uninstall();».

Remarque



Dernière mise à jour : Vendredi, le 5 mars 2021