Mise à jour 2016:
la série node-windows / mac / linux utilise une API commune à tous les systèmes d'exploitation, c'est donc absolument une solution pertinente. Toutefois; node-linux génère des fichiers d'initialisation systemv. Alors que systemd continue de gagner en popularité, c'est en réalité une meilleure option sous Linux. Bienvenue aux RP si quelqu'un veut ajouter le support de systemd à node-linux :-)
Fil d'origine:
C'est un fil assez ancien maintenant, mais les fenêtres de noeud fournissent une autre façon de créer des services d'arrière-plan sur Windows. Il est vaguement basé sur le nssm
concept d'utilisation d'un exe
wrapper autour de votre script de nœud. Toutefois; il utilise à la winsw.exe
place et fournit un wrapper de nœud configurable pour un contrôle plus granulaire sur la façon dont le processus démarre / s'arrête en cas d'échec. Ces processus sont disponibles comme tout autre service:
Le module cuit également dans certains journaux d'événements:
La démonétisation de votre script se fait via du code. Par exemple:
var Service = require('node-windows').Service;
// Create a new service object
var svc = new Service({
name:'Hello World',
description: 'The nodejs.org example web server.',
script: 'C:\\path\\to\\my\\node\\script.js'
});
// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
svc.start();
});
// Listen for the "start" event and let us know when the
// process has actually started working.
svc.on('start',function(){
console.log(svc.name+' started!\nVisit http://127.0.0.1:3000 to see it in action.');
});
// Install the script as a service.
svc.install();
Le module prend en charge des choses comme le plafonnement des redémarrages (afin que les mauvais scripts ne gâchent pas votre serveur) et l'augmentation des intervalles de temps entre les redémarrages.
Étant donné que les services node-windows fonctionnent comme les autres, il est possible de gérer / surveiller le service avec n'importe quel logiciel que vous utilisez déjà.
Enfin, il n'y a pas de make
dépendances. En d'autres termes, une simplenpm install -g node-windows
fonctionnera. Vous n'avez pas besoin de la magie de Visual Studio, .NET ou node-gyp pour l'installer. En outre, il est sous licence MIT et BSD.
En toute divulgation, je suis l'auteur de ce module. Il a été conçu pour soulager la douleur exacte éprouvée par l'OP, mais avec une intégration plus étroite dans les fonctionnalités déjà fournies par le système d'exploitation. J'espère que les futurs téléspectateurs avec cette même question le trouveront utile.