如何在Windows服务器上保持Node服务器应用程序运行

7
我正在处理一个项目,我修改了node.js的“简单聊天室”示例应用程序以满足我的需求,它可以正常工作。
在打开客户端页面之前,我必须调用服务器应用程序的URL(.js文件)来启动它,到目前为止一切都正常。但是,如果节点服务器应用程序由于任何原因(服务器重启、iis重启等)而关闭,客户端页面将返回错误。
我的问题是,如何在中断后始终保持节点服务器应用程序处于活动状态?如何做到这一点,而不需要监视器或每隔x分钟运行一次的脚本?
我正在使用IIS 7.5和iisnode模块。
谢谢

2
为什么不使用 nssm 将 Node 作为服务运行? - balazs
nssm 看起来很有前途,我会试一试。 - dvdmn
4个回答

9
nssm 将你的脚本文件作为服务运行。

有趣的选项。我会投票支持作为一般解决方案,但我建议在Node中使用我的下面的答案,以便应用程序或其环境的任何部分都不会变得特定于平台。 - rainabba
这个问题是特定于平台的,顺便提一下,如果你重新启动机器,仍然需要启动nodemon和supervisor,而使用nssm,则会在重新启动时自动运行,但是对于开发,我也使用nodemon :) - balazs

4
我确定你会想要使用Jesus

安装

$ npm install -g jesus

使用方法

开始监控服务器

$ jesus daemon /path/to/server.log

启动一个进程

$ jesus start <id> node /path/to/my-app/index.js

为了停止一个进程:
$ jesus stop <id>

停止所有操作
$ jesus stopall

2

2

目前来看,在Windows中,forever不能正常工作,除非进行一些特殊考虑(我还没有发现是什么)。 - rainabba
我花了很多时间研究iisnode,但最终放弃了。而且,我需要在两个平台上运行,所以这并不是一个解决所有问题的方法。请查看下面我的现有解决方案。 - rainabba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接