2012-01-03 32 views
4

是否有一種普遍接受的手段去消息(當然,後來通過信號或其上的某種抽象進行通信)節點腳本?我該如何守護節點?

也就是說,有一個節點等價的:

if (fork()) 
    // parent process, die 
    exit(1); 
// we're a daemon 
+0

看到[永遠](https://github.com/nodejitsu/forever) – 2012-01-03 02:22:19

回答

1

Node Web Development

以下是如何運行的列表。節點作爲 不同平臺的後臺守護進程:

  • nodejs-autorestart管理它採用暴發戶Linux上的節點實例(Ubuntu的,Debian的,等等)。
  • fugue監視節點服務器,如果它崩潰,重新啓動它。
  • forever是一個小的命令行節點腳本,它確保腳本將永遠運行。
  • node-init是一個Node腳本,它將您的Node應用程序轉換爲符合LSB的init腳本。 LSB是Linux兼容性的一個規範。
+0

我以爲這本書很糟糕。這不是徹底的,並且宣傳大量的第三方代碼,而不是使用內置的Node模塊(正如您期望的那樣)。它應該被稱爲「使用Node.js工具進行Web開發」等等。 – L0j1k 2014-03-20 13:47:26

0

正如其他人指出的,真的沒有辦法直接在Node中做到這一點。你真的需要使用foreverjs來運行它。你需要像永遠一樣使用監視器來運行它的原因是因爲代碼拋出的錯誤通常會導致整個Node進程退出並退出。監視器將查找此情況並立即重新啓動該過程。

重要的是要注意,當進程重新啓動時,服務器不會響應請求,所以如果您希望這是一個問題,並確保您有幾個服務器進程在負載下運行,平衡器。