98 votes

Comment peut-on démarrer un serveur node.js en tant que processus démon?

Dans Python Twisted, vous disposez de la commande twistd qui vous aide pour un certain nombre de choses liées à l'exécution de votre application (démonisez-la par exemple).

Comment démoniser un serveur node.js pour qu'il puisse s'exécuter même après la fermeture de la session en cours?

Merci de votre aide

99voto

Baggz Points 6836

Pour toujours est la réponse à votre question.

Installer

 $ curl http://npmjs.org/install.sh | sh
$ npm install forever
 

Usage

Utiliser Forever depuis la ligne de commande

 $ forever start server.js
 

Utiliser une instance de Forever à partir de Node.js

 var forever = require('forever');

  var child = new (forever.Forever)('your-filename.js', {
    max: 3,
    silent: true,
    options: []
  });

  child.on('exit', this.callback);
  child.start();
 

48voto

Budleigh Points 187

Si vous avez besoin que votre processus se démonise, sans relais, vous pouvez utiliser le module daemonize .

 $ npm install daemonize2
 

Ensuite, écrivez simplement votre fichier serveur comme dans l'exemple:

 var daemon = require("daemonize2").setup({
    main: "app.js",
    name: "sampleapp",
    pidfile: "sampleapp.pid"
});

switch (process.argv[2]) {

    case "start":
        daemon.start();
        break;

    case "stop":
        daemon.stop();
        break;

    default:
        console.log("Usage: [start|stop]");
}
 

Remarquez, c'est plutôt une approche de bas niveau.

24voto

hutch Points 1723

Voici un gestionnaire de processus intéressant qui vous permet de démarrer de nombreuses applications de nœuds en arrière-plan et fournit de nombreux utilitaires, par exemple. fonctionnalité upstart / forever

https://github.com/unitech/pm2

18voto

raidfive Points 4308

La solution la plus simple consiste simplement à envoyer la commande en arrière-plan.

 $ node server.js &
 

Ensuite, vous pouvez arrêter le processus plus tard. Je fais habituellement ce qui suit:

 $ killall node
 

Remarque : j'utilise OS X.

6voto

gnuanu Points 918

Sous GNU / Linux, vous pouvez utiliser daemonize: des instructions détaillées et une page de manuel .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X