是否存在一种普遍接受的deamonizing手段(当然,后来通过信号或其上的一些抽象进行通信)节点脚本?
也就是说,Node是否相当于:
if (fork())
// parent process, die
exit(1);
// we're a daemon
答案 0 :(得分:1)
以下是将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进程退出并退出。监视器将查找此情况并立即重新启动该过程。
同样重要的是要注意,当进程重新启动时,您的服务器将不会响应请求,因此如果您认为这是一个问题,请提前计划,并确保在负载均衡器下运行一些服务器进程