亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node.js程序作為服務并在windows下開機自啟動(用forever)

發布時間:2020-09-07 04:02:01 來源:腳本之家 閱讀:338 作者:不帶汽的可樂 欄目:web開發

前言

最近項目中有一塊服務是用node.js實現的,運行環境是windows server 2008 R2,剛開始著手實現這塊功能的時候時間很緊迫,隨便寫了個console程序就部署上去了……啟動方式就是在 CMD 里輸入node main.js。

然而這樣搞肯定是不行的啊!這樣搞的話,萬一有哪個 Error 沒捕獲到,整個服務就掛了,雖然咱寫的代碼很嚴謹,跑了一個多月也沒掛,但為了萬無一失,還是得有個自動重啟的能力。

而且更關鍵的問題是……現在這樣好low啊……開機后需要手動啟動,而且運行的時候一直會顯示一個 console ……這根本就忍不了啊!

目標:

  1.  支持崩潰后自動重啟
  2.  支持后臺運行
  3.  開機自動啟動

自動重啟和后臺運行

因為 javascript 的單線程運行方式,一點錯誤就徹底崩潰的特性,自動重啟的解決方案自然也早就有了,比如 pm2 和 forever ,從功能上看,pm2 比 forever 要強大不少,然而我只想要個 "Keep Alive" ,所以我選擇了 forever.

先全局安裝 forever

npm install -g forever

然后把啟動用的bat腳本修改一下……

舊的啟動腳本:

node d:\xxx\main.js

使用 forever 后的:

forever start -o out.log -e err.log d:\xxx\main.js

如果不出問題的話,應該就可以了~

然而每次你這樣想的時候,就該出問題了_(:з)∠)_

forever 這家伙居然不認 windows 下的絕對路徑…… 假如我是在c:\Users\Administrator下執行的命令,那么 forever 就會嘗試去 c:\Users\Administrator\d:\xxx\下面尋找main.js……

node.js程序作為服務并在windows下開機自啟動(用forever)

沒錯,除非路徑的第一個字符是 / ,否則就會被當成相對路徑來處理。

坑爹啊。

或許是我用不慣windows的緣故,反正我是沒找到好的解決辦法,最終迫于無奈,在bat腳本中手動切換了一下盤符處理了

最后的腳本:

@echo off
d:
forever start -o xxx/logs/out.log -e xxx/logs/err.log --uid "communityWorker" xxx/main.js

其實我總是感覺這種做法不太對,但對 windows 實在不熟悉,如果誰有更好的辦法也請評論告訴我

開機自動啟動

既然是自動啟動嘛,我首先想到的就是注冊一個自啟動的服務,然而注冊的似乎只能是一個exe,用bat注冊服務會報出一個 1053 的錯誤

node.js程序作為服務并在windows下開機自啟動(用forever)

注冊服務不行……那就只好用計劃任務了……

新建一個計劃任務,然后系統啟動時的觸發器,由這個計劃任務來執行我們的bat

node.js程序作為服務并在windows下開機自啟動(用forever)

node.js程序作為服務并在windows下開機自啟動(用forever)

嘛……這種方法最后是生效了,唯一需要注意的就是安全選項中,一定要選中 "不管用戶是否登錄都要運行" 的選項!!

否則會在系統啟動觸發器被觸發的時候,因為沒有用戶登錄,所以直接跳過了這個計劃任務,進而無法啟動我們的服務。

node.js程序作為服務并在windows下開機自啟動(用forever)

雖然還有不完善的地方,但確實實現了預期的效果;最后說一句……windows服務器真TM麻煩……

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上犹县| 荥阳市| 礼泉县| 龙井市| 贞丰县| 霍州市| 额敏县| 织金县| 罗定市| 大英县| 惠水县| 景谷| 望都县| 积石山| 鲁山县| 陵水| 齐齐哈尔市| 郓城县| 七台河市| 虹口区| 车险| 曲阜市| 钟祥市| 娱乐| 松桃| 宁晋县| 怀化市| 卓尼县| 内江市| 拉萨市| 屏东市| 洛阳市| 同江市| 新邵县| 江门市| 监利县| 广灵县| 道真| 施甸县| 永平县| 六枝特区|