最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js程序作為服務(wù)并在windows下開機(jī)自啟動(dòng)(用forever)

 更新時(shí)間:2017年03月29日 11:14:01   作者:不帶汽的可樂  
這篇文章主要介紹了node.js程序作為服務(wù)并在windows下開機(jī)自啟動(dòng)的相關(guān)資料,因?yàn)閷?shí)現(xiàn)的功能比較簡(jiǎn)單,沒有選擇功能比較強(qiáng)大的pm2,文中選擇利用了forever,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

最近項(xiàng)目中有一塊服務(wù)是用node.js實(shí)現(xiàn)的,運(yùn)行環(huán)境是windows server 2008 R2,剛開始著手實(shí)現(xiàn)這塊功能的時(shí)候時(shí)間很緊迫,隨便寫了個(gè)console程序就部署上去了……啟動(dòng)方式就是在 CMD 里輸入node main.js。

然而這樣搞肯定是不行的??!這樣搞的話,萬一有哪個(gè) Error 沒捕獲到,整個(gè)服務(wù)就掛了,雖然咱寫的代碼很嚴(yán)謹(jǐn),跑了一個(gè)多月也沒掛,但為了萬無一失,還是得有個(gè)自動(dòng)重啟的能力。

而且更關(guān)鍵的問題是……現(xiàn)在這樣好low啊……開機(jī)后需要手動(dòng)啟動(dòng),而且運(yùn)行的時(shí)候一直會(huì)顯示一個(gè) console ……這根本就忍不了??!

目標(biāo):

  1.  支持崩潰后自動(dòng)重啟
  2.  支持后臺(tái)運(yùn)行
  3.  開機(jī)自動(dòng)啟動(dòng)

自動(dòng)重啟和后臺(tái)運(yùn)行

因?yàn)?javascript 的單線程運(yùn)行方式,一點(diǎn)錯(cuò)誤就徹底崩潰的特性,自動(dòng)重啟的解決方案自然也早就有了,比如 pm2forever ,從功能上看,pm2 比 forever 要強(qiáng)大不少,然而我只想要個(gè) "Keep Alive" ,所以我選擇了 forever.

先全局安裝 forever

npm install -g forever

然后把啟動(dòng)用的bat腳本修改一下……

舊的啟動(dòng)腳本:

node d:\xxx\main.js

使用 forever 后的:

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

如果不出問題的話,應(yīng)該就可以了~

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

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

沒錯(cuò),除非路徑的第一個(gè)字符是 / ,否則就會(huì)被當(dāng)成相對(duì)路徑來處理。

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

最后的腳本:

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

其實(shí)我總是感覺這種做法不太對(duì),但對(duì) windows 實(shí)在不熟悉,如果誰有更好的辦法也請(qǐng)?jiān)u論告訴我

開機(jī)自動(dòng)啟動(dòng)

既然是自動(dòng)啟動(dòng)嘛,我首先想到的就是注冊(cè)一個(gè)自啟動(dòng)的服務(wù),然而注冊(cè)的似乎只能是一個(gè)exe,用bat注冊(cè)服務(wù)會(huì)報(bào)出一個(gè) 1053 的錯(cuò)誤

注冊(cè)服務(wù)不行……那就只好用計(jì)劃任務(wù)了……

新建一個(gè)計(jì)劃任務(wù),然后系統(tǒng)啟動(dòng)時(shí)的觸發(fā)器,由這個(gè)計(jì)劃任務(wù)來執(zhí)行我們的bat

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

否則會(huì)在系統(tǒng)啟動(dòng)觸發(fā)器被觸發(fā)的時(shí)候,因?yàn)闆]有用戶登錄,所以直接跳過了這個(gè)計(jì)劃任務(wù),進(jìn)而無法啟動(dòng)我們的服務(wù)。

雖然還有不完善的地方,但確實(shí)實(shí)現(xiàn)了預(yù)期的效果;最后說一句……windows服務(wù)器真TM麻煩……

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法示例

    nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法示例

    這篇文章主要介紹了nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法,通過兩個(gè)具體案例形式分析了node.js同步刪除文件/文件夾,以及異步刪除文件/文件夾的相關(guān)實(shí)現(xiàn)技巧,涉及遞歸遍歷與文件判斷、回調(diào)等相關(guān)操作,需要的朋友可以參考下
    2023-04-04
  • 如何使用Node.js判斷png圖片是否存在透明像素

    如何使用Node.js判斷png圖片是否存在透明像素

    這篇文章主要給大家介紹了關(guān)于如何使用Node.js判斷png圖片是否存在透明像素的相關(guān)資料,文中將實(shí)現(xiàn)的原理以及代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • Express使用multer實(shí)現(xiàn)文件上傳的示例代碼

    Express使用multer實(shí)現(xiàn)文件上傳的示例代碼

    這篇文章主要介紹了Express 使用 multer 實(shí)現(xiàn)文件上傳的操作步驟,文中通過代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • Node.js API詳解之 string_decoder用法實(shí)例分析

    Node.js API詳解之 string_decoder用法實(shí)例分析

    這篇文章主要介紹了Node.js API詳解之 string_decoder用法,結(jié)合實(shí)例形式分析了Node.js API中string_decoder的功能、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • 新入門node.js必須要知道的概念(必看篇)

    新入門node.js必須要知道的概念(必看篇)

    下面小編就為大家?guī)硪黄氯腴Tnode.js必須要知道的概念(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • koa router 多文件引入的方法示例

    koa router 多文件引入的方法示例

    這篇文章主要介紹了koa router 多文件引入的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • Nest.js系列學(xué)習(xí)控制器使用示例詳解

    Nest.js系列學(xué)習(xí)控制器使用示例詳解

    這篇文章主要為大家介紹了Nest.js系列控制器使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 玩轉(zhuǎn)NODE.JS(四)-搭建簡(jiǎn)單的聊天室的代碼

    玩轉(zhuǎn)NODE.JS(四)-搭建簡(jiǎn)單的聊天室的代碼

    本篇文章主要介紹了利用NODE.JS搭建簡(jiǎn)單的聊天室的代碼,有需要的可以了解一下。
    2016-11-11
  • axios基本用法教程示例詳解

    axios基本用法教程示例詳解

    這篇文章主要為大家介紹了axios基本用法示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • NodeJS簡(jiǎn)單實(shí)現(xiàn)WebSocket功能示例

    NodeJS簡(jiǎn)單實(shí)現(xiàn)WebSocket功能示例

    這篇文章主要介紹了NodeJS簡(jiǎn)單實(shí)現(xiàn)WebSocket功能,結(jié)合具體實(shí)例形式分析了nodejs實(shí)現(xiàn)WebSocket通信功能的客戶端與服務(wù)器端相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02

最新評(píng)論

南通市| 万山特区| 景泰县| 成都市| 顺平县| 延长县| 绥中县| 尤溪县| 吉水县| 阳西县| 准格尔旗| 新干县| 宜昌市| 阿克苏市| 金乡县| 宜宾县| 阳西县| 新泰市| 方正县| 赞皇县| 合肥市| 东城区| 措勤县| 卫辉市| 望奎县| 漳浦县| 汉沽区| 昆明市| 嘉祥县| 香港 | 定南县| 龙海市| 尤溪县| 宜兰县| 梁平县| 新绛县| 彭山县| 辽宁省| 桑日县| 获嘉县| 贡觉县|