我怎样才能守护节点?

时间:2012-01-03 01:04:51

标签: node.js

是否存在一种普遍接受的deamonizing手段(当然,后来通过信号或其上的一些抽象进行通信)节点脚本?

也就是说,Node是否相当于:

if (fork())
    // parent process, die
    exit(1);
// we're a daemon

4 个答案:

答案 0 :(得分:1)

Node Web Development

  

以下是将Node作为后台守护程序运行的方法列表   不同的平台:

     
      
  • nodejs-autorestart管理Linux上使用Upstart(Ubuntu,Debian等)的Node实例。
  •   
  • fugue监视节点服务器,如果崩溃则重新启动它。
  •   
  • forever是一个小命令行节点脚本,可确保脚本“永远”运行。
  •   
  • node-init是一个Node脚本,它将您的Node应用程序转换为符合LSB的init脚本。 LSB是Linux的规范   兼容性。
  •   

答案 1 :(得分:0)

在Node中没有内置方法可以做到这一点。看看Writing Daemon's in JavaScript with Node.js的一个实现(警告:这个相对较旧,Node移动速度很快 - 我还没有测试过它。)

答案 2 :(得分:0)

Upstart对我很有用,但是当我通过https服务时遇到问题。这是我使用的教程:

http://kevin.vanzonneveld.net/techblog/article/run_nodejs_as_a_service_on_ubuntu_karmic/

您可以使用节点的过程对象来发送/处理信号。

答案 3 :(得分:0)

正如其他人所指出的那样,直接在Node中确实没有办法做到这一点。您确实需要使用foreverjs运行它。您需要使用永久监视器运行它的原因是,您的代码抛出的错误通常会导致整个Node进程退出并退出。监视器将查找此情况并立即重新启动该过程。

同样重要的是要注意,当进程重新启动时,您的服务器将不会响应请求,因此如果您认为这是一个问题,请提前计划,并确保在负载均衡器下运行一些服务器进程