如何以编程方式永久运行节点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
。