nodejs run as a service on windows
nodejs run as a service on windows
谢宝龙 发表于4年前
nodejs run as a service on windows
  • 发表于 4年前
  • 阅读 117
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

摘要: nodejs 在windows 上运行早已经不是什么新闻,重点在于windows 上如何守护进程,并且像服务那样启动和停止。 windows 不像linux 那样可以使用forever、pm2 现成模块

nodejs 在windows 上运行早已经不是什么新闻,重点在于windows 上如何守护进程,并且像服务那样启动和停止。 windows 不像linux 那样可以使用forever、pm2 现成模块,后来找到了这篇文章 http://frosh.iteye.com/blog/1924837, 利用nodejs 去启动一个进程,并且监听当前的进程,当进程挂掉会自动重启。

var spawn = require('child_process').spawn,
	server = null;


function startServer(){
	console.log('restart server');
	server = spawn('node',['app.js']);
	console.log('node js pid is '+server.pid);
    server.on('close',function(code,signal){
    	server.kill(signal);
    	server = startServer();
    });
    server.on('error',function(code,signal){
    	server.kill(signal);
    	server = startServer();
    });
	return server;
};

startServer();

这部分代码已经可以解决核心问题了,只要运行这个脚本就可以一直守护我们的程序,但是如果有人不小心把这个cmd 窗口关闭,那么我们的进程就也over了,为了避免这种误操作我们可以使用NSSM来帮我们把这个脚本启动成一个服务,先写一个.bat的批处理

node start.js

假设我们把这个start.bat 放在里D:\

然后在使用

NSSM  install nodejs D:\start.bat

这样就安装好了一个服务,我们运行services.msc 查看一下就可以看到。 以上就是全部步骤

共有 人打赏支持
粉丝 24
博文 8
码字总数 2678
×
谢宝龙
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: