繁体   English   中英

永远使用 Node.js

[英]Using forever with Node.js

我有一些关于永远使用 Node.js 的问题,可能是微不足道的。 从我读过的内容来看,forever 可以以编程方式使用,它维护一个包含所有永远使用的脚本的列表。 当该进程终止时,它会自动生成一个新进程,直到它停止。

但是,我的问题是,永远如何做到这一点? 它是否也添加了这些脚本以在启动时启动?

您可以像这样以编程方式永远使用:

在 node.js 脚本中使用 Forever 实例:

var forever = require('forever-monitor');

  var child = new (forever.Monitor)('your-filename.js', {
    max: 3,
    silent: true,
    options: []
  });

  child.on('exit', function () {
    console.log('your-filename.js has exited after 3 restarts');
  });

  child.start();

您应该花一点时间阅读README.md中 Forever 的优秀文档中提供的选项

您还有许多可以在 Forever 中监听的事件:

  • error [err]:发生错误时引发
  • start [process, fvrFile, data]:首次启动目标脚本时引发。
  • stop [process]:当目标脚本被用户停止时引发
  • save [path, data]:当目标 Monitor 将 pid 信息保存到磁盘时引发。
  • restart [forever]:每次重新启动目标脚本时引发
  • exit [forever]:在目标脚本实际退出(永久)时引发。
  • stdout [data]:从子进程的 stdout 接收到数据时引发
  • stderr [data]:从子进程的 stderr 接收到数据时引发

它通过将事件侦听器附加到您尝试运行的脚本并以优雅的方式处理它们来实现这一点。

如果您想看看它是如何做到的,那么该代码的文档就很好了。

您还应该阅读这篇关于如何保持进程永远运行的优秀教程

至于第二个问题:不,它不会添加它以在启动时启动。 为此,您需要将其添加为新贵工作或使用Monit之类的东西来监视和启动它。 为此,您应该查看Deploying Node.js with Upstart 和 Monit 这是一个很棒的教程。

这是一篇旧帖子,但我在 Google 上偶然发现了这个——它有点过时了,因为命令行版本永远从程序版本中分支出来。 您需要使用forever-monitor而不是forever 示例代码现在应该是;

 var forever = require('forever-monitor');

  var child = new (forever.Monitor)('your-filename.js', {
    max: 3,
    silent: true,
    options: []
  });

  child.on('exit', function () {
    console.log('your-filename.js has exited after 3 restarts');
  });

  child.start();

我试图建议对原始答案进行编辑,但被拒绝的权力。 想我可以节省一些其他人的时间来弄清楚为什么示例代码不起作用:-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM