[英]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 中監聽的事件:
它通過將事件偵聽器附加到您嘗試運行的腳本並以優雅的方式處理它們來實現這一點。
如果您想看看它是如何做到的,那么該代碼的文檔就很好了。
您還應該閱讀這篇關於如何保持進程永遠運行的優秀教程。
至於第二個問題:不,它不會添加它以在啟動時啟動。 為此,您需要將其添加為新貴工作或使用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.