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

时间:2014-05-26 13:43:29

标签: javascript node.js forever

我需要运行一组节点js文件,其中包含配置信息,其中必须运行端口号和IP地址然后使用forever in node.js我需要在终端中使用配置运行脚本有任何手动输入。

4 个答案:

答案 0 :(得分:3)

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

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

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

  child.on('exit', function () {
    console.log('your-filename.js has exited after 3 restarts');
  });

  child.start();

答案 1 :(得分:2)

您可以使用child_process模块​​。查看文档,其中包含一些有用的信息:http://nodejs.org/api/child_process.html

举一个简短的例子

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

如果您不需要回电/不想等待执行:

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

这有用吗?

最佳

马克

编辑:好的,不确定我是否真的明白你的问题,但我的回答与https://stackoverflow.com/a/23871739/823851结合可能会提供一个很好的解决方案。

答案 2 :(得分:0)

用法:

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

答案 3 :(得分:-2)

node-config是一个很好的模块,用于管理Node.js应用程序的不同配置。

例如,要制作“生产”配置,/config/production.json将包含:

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

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

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

要在此配置中启动应用程序,只需在运行应用程序之前首先将shell中的NODE_ENV设置为生产。

export NODE_ENV=production
forever start app.js

根据需要为每个环境创建其他配置JSON文件。未指定环境时使用default.json