在Web服务器上连续运行node.js包

时间:2013-12-04 14:48:11

标签: node.js web-services

我使用的博客平台specter在我运行npm start时启动。只有当我运行npm start时,它才会显示在网站网址上。如果我在终端中执行命令-c,它将退出运行程序包,站点将关闭,直到我再次运行npm start。有没有办法设置服务器以保持网站连续?现在我必须在进行任何编辑之前删除该网站,然后使用npm start开始备份。

4 个答案:

答案 0 :(得分:2)

您可以做的一件事是通过Nodejitsu安装Forever。这样做是它在后台“永远”运行您的节点脚本,或直到您停止进程或设置超时限制。

要安装Forever,请执行以下操作:

npm install forever -g

对于您的情况,您需要进入Spectre所在的目录并永远启动:

cd $(specterLocation)
forever start server.js

这将在后台启动您的服务器,直到您执行以下操作:

forever stop server.js (in directory of Specter)
forever stopall (wherever on server)

要查看Forever启动的流程列表,只需使用:

forever list

希望这有帮助!

答案 1 :(得分:2)

您可能需要查看nodemon

只要检测到nodemon启动的目录发生更改,它就会自动重启节点应用程序。

它也可以作为npm包使用(https://npmjs.org/package/nodemon)。

答案 2 :(得分:1)

只需在网站运行时进行修改即可。然后,当您完成后,停止该站点并重新启动它。该站点不是从文件中连续运行,而是启动,加载到内存中,然后从那里运行,释放它对文件的保留。

或者,您可以实施任何数量更强大的管理策略,包括版本控制,流程管理器,集成策略......如果您计划提高技能以支持大批量或商业实施,那么您应该看一下进入这些事情。如果您只是运行个人博客,那就是编辑文件,然后在完成后重新启动服务器进程。

答案 3 :(得分:0)

使用Node Supervisor。它非常易于使用和安装。

npm install supervisor -g

运行
supervisor whateverFileYouWant.js

https://github.com/isaacs/node-supervisor