2012-02-20 117 views
9

如何創建可以重新啓動的應用程序?我想創建一個應用程序,設置一個可以重新啓動的網絡管理員。這可能嗎?如果是這樣,怎麼樣?我認爲這可能是內置在節點中的流程模塊。node.js應用程序可以重新啓動自己

+0

幾個模塊 – sarnold 2012-02-20 07:53:55

回答

11

我已經運行了好幾次,很容易上手。檢查它在:https://github.com/nodejitsu/forever

+0

我看不到永久允許你手動重啓的地方 – LordZardeck 2012-02-20 16:42:57

+0

@主:特別注意'重啓'和'重啓'命令 – sarnold 2012-02-20 22:55:23

+0

呵呵, t在自述中。我正在嘗試安裝它,但我在Windows上遇到了一些問題。 http://stackoverflow.com/questions/9366916/cant-install-forever-on-windows – LordZardeck 2012-02-20 22:57:08

4

我知道這是有點晚,但我有類似的要求回覆。每當我進行配置更改時,我都想重新啓動節點進程。我使用pm2來管理我的節點進程,所以它變得非常簡單。

進行配置更改後,我從節點進程中執行process.exit()。據我所知,進程退出然後pm2重新啓動過程罰款。

不確定如果有任何副作用,但它現在好像對我來說工作正常。

+0

這也是我的正確答案 – Antoine 2017-10-24 20:29:46

2
  1. 您可以使用子進程來運行你的應用程序和操作它需要如何: ​​

  2. 永遠使用,PM2或任何東西死亡後重新啓動,並與process.exit殺死自己()https://nodejs.org/api/process.html

0

是的,暴發戶會在沒有nodemon的情況下重新啓動您的流程。

npm install -g nodemon 
sudo nodemon server.js 

nodemon將看目錄中的文件是nodemon開始,如果他們改變,它會自動重新啓動節點應用。

4

LK「我

這是可能的,而不外部依賴性:

console.log("This is pid " + process.pid); 
setTimeout(function() { 
    process.on("exit", function() { 
     require("child_process").spawn(process.argv.shift(), process.argv, { 
      cwd: process.cwd(), 
      detached : true, 
      stdio: "inherit" 
     }); 
    }); 
    process.exit(); 
}, 5000); 

源:從https://github.com/joyent/node/wiki/modules# https://gist.github.com/silverwind/d0802f7a919ae86ff25e