我如何守护节点?

是否有一个普遍接受的手段去deamonizing(当然,后来通过信号或一些抽象的沟通)节点脚本?

也就是说,是否有一个节点相当于:

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

节点Web开发

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

  • nodejs-autorestart在使用Upstart(Ubuntu,Debian等)的Linux上pipe理Node实例。
  • 神游观看节点服务器,重新启动它,如果它崩溃。
  • 永远是一个小的命令行节点脚本,确保脚本将永远运行。
  • node-init是一个Node脚本,它将您的Node应用程序变成一个LSB​​兼容的init脚本。 LSB是Linux兼容性的规范。

在Node中没有内置的方法。 看一下在Node.js中使用Node.js写入守护进程的一个实现(警告:这是相对较旧的,节点移动很快 – 我没有testing过。

新贵适合我,虽然我通过https服务时遇到问题。 这里是我使用的教程:

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

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

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

同样重要的一点是,当进程重新启动时,服务器不会响应请求,所以如果您希望这是一个问题,请确保您有less量服务器进程在负载平衡器下运行。