簡體   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