如何以编程方式永久运行节点js应用程序

我需要运行一组节点js文件,其中包含configuration信息,它必须通常运行端口号和IP地址,然后使用永远在node.js我需要在terminal运行脚本与configuration没有任何手动input。

对于编程方法,您可以使用Forever-Moniter

  var forever = require('forever-monitor');

   var child = new(forever.Monitor)('your-filename.js',{
    最多3个,
    沉默:真实,
    选项:[]
   });

   child.on('exit',function(){
     console.log('你的文件名.js已经退出3重新启动');
   });

   child.start(); 

你可以使用child_process模块​​。 检查文档,那里有一些有用的信息: http : //nodejs.org/api/child_process.html

举个简单的例子

var exec = require('child_process').exec; exec('forever', function callback(error, stdout, stderr){ // cb }); 

如果你不需要callback/不想等待执行:

 var exec = require('child_process').exec('forever').unref(); 

有帮助吗?

最好的马克

编辑:好吧,不知道如果我真的得到了你的问题的重点,但我的答案结合https://stackoverflow.com/a/23871739/823851可能会提供一个很好的解决scheme。

用法:

  • 永远启动hello.js来启动一个进程。
  • 永远列出所有进程列表永远开始
  • 永远停止hello.js来停止进程,或者永远停止0来停止索引为0的进程(如永久列表所示)。

node-config是pipe理Node.js应用程序的不同configuration的好模块。

例如,要进行“生产”configuration,/config/production.json将包含:

 { "port" : "3000", "ip" : "192.168.1.1" } 

在您的一个节点应用程序JS文件中:

 config = require('config') .... var port = config.port; var ip = config.ip; 

要在这个configuration中启动应用程序,只需在运行应用程序之前,先将shell的NODE_ENV设置为shell。

 export NODE_ENV=production forever start app.js 

根据需要为每个环境创build其他configurationJSON文件。 在没有指定环境时使用default.json