永远使用Node.js

cow*_*bop 19 node.js

我有一些,可能是微不足道的问题,永远使用Node.js. 根据我的阅读,永远可以以编程方式使用,它维护一个包含永久使用的所有脚本的列表.当该进程终止时,它会自动生成一个新进程,直到它停止.

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

sli*_*aid 29

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

在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();
Run Code Online (Sandbox Code Playgroud)

您应该花一点时间阅读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之类的东西来监控和启动它.对于这一点,你应该看一看与暴发户和monit的部署Node.js的.这是一个很棒的教程.


Mik*_*e P 5

这是一篇很老的帖子,但我偶然发现了谷歌 - 它有点过时了,因为从编程版本中永远分支命令行版本.你需要永远使用监视器而不是永远.示例代码现在应该是;

 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();
Run Code Online (Sandbox Code Playgroud)

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