最近在使用Node.js用於視訊聊天室的架設
可是如果我在window Server登出身分後,這個Node.js就會被關掉~不像IIS一直開著@@~
一般網路介紹Node.js常駐用以下指令就可以~
forever start app.js
參考網址:
http://u1413745095-blog.logdown.com/posts/241538-nodejs-program-permanently-carry-out
可是能離開命令控制台是ok的~但我一旦登出遠端Server管理員的身分後...這node就被關掉了= =
若不登出管理員的身分...是可以正常執行node.js
據說在windows上要使用
<pre class="c" name="code">
npm install -g forever-win
沒有效果呢...管理員登出一樣被關掉.....
不過倒是變化了一些~管理員登入後自動開啟node.js
不用再輸入啟動的bat檔..
管理員登出~Node.js被關掉的問題還是在...+.+|||
這樣喔...簡單的解決方法是用排程來跑,這是系統執行的,所以應該不會因為登出而被關掉。
要把程式當做windows service的話,需要額外程式碼,透過node-windows來做。
還沒試...node-windows...
這個node-windows是建構在Node.js之上,感覺Node.js一樣會被登出的管理員kill it
可能要用vb.net寫個服務來常駐node.js
跟是不是用node建構的沒關係啦,關鍵在於行程是哪個用戶擁有的。你可以用工作管理員看一下,是否可以讓行程的使用者不是你登入的用戶。所以我會說可以嘗試用排程來啟動看看,因為可以選用戶,例如用system用戶來跑。
你可以用工作管理員會SysInternalSuite中的procexp驗證一下。
我改了處理方式~用Window Service常註...
可是System用戶開不起Node.js Administrator可以開= =..
我測試Service是先踢除Node.exe (是可以踢除的掉)
再啟動Node.exe但沒有成功
可能卡在用戶權限問題吧..
目前都是遠端斷線~管理員不登出的方式處理這問題..可是要是遠端重開機就麻煩了...
對了~排程試過了...完全都沒反應~設定Administrator帳戶開啟bat檔也沒有用...
要手按bat檔才有反應..
嗯,這樣有點怪,我用排程來跑是沒問題的,node就常駐而且用戶是system。我下的命令列是node的執行檔,參數是js擋,工作目錄是js擋的位置。這樣跑沒有什麼問題。
不然用這個來裝裝看:https://nssm.cc/
Run it Forever (until you kill it)
forever start test.js
You should be able to see it here
ps axl | grep node
And here
forever list
You can kill it using
forever stop 0