守護NodeJS進程和記錄錯誤日志

現(xiàn) 在已經(jīng)基本上解決了Node.JS因異常而崩潰的問題虑稼,不過任何平臺都不是100%可靠的把将,還有一些錯誤是從Node底層拋出的,有些異常 try/catch和uncaughtException都無法捕獲隅要。之前在運行ourjs的時侯弯菊,會偶爾碰到底層拋出的文件流讀取異常,這就是一個底層 libuv的BUG畜吊,node.js在0.10.21中進行了修復(fù)泽疆。 面對這種情況,我們就應(yīng)該為nodejs應(yīng)用添加守護進程玲献,讓NodeJS遭遇異常崩潰以后能馬上復(fù)活殉疼。 另外,還應(yīng)該把這些產(chǎn)生的異常記錄到日志中捌年,并讓異常永遠不再發(fā)生瓢娜。
使用node來守護node
node-forever 提供了守護的功能和LOG日志記錄功能。 安裝非常容易
[sudo] npm install forever
使用也很簡單
$ forever start simple-server.js$ forever list [0] simple-server.js [ 24597, 24596 ]
還可以看日志
forever -o out.log -e err.log my-script.js

使用shell啟動腳本守護node
使用node來守護的話資源開銷可能會有點大礼预,而且也會略顯復(fù)雜眠砾,OurJS直接在開機啟動腳本來進程線程守護。 如在debian中放置的 ourjs 開機啟動文件: /etc/init.d/ourjs 這個文件非常簡單托酸,只有啟動的選項褒颈,守護的核心功能是由一個無限循環(huán) while true; 來實現(xiàn)的柒巫,為了防止過于密集的錯誤阻塞進程,每次錯誤后間隔1秒重啟服務(wù)
WEB_DIR='/var/www/ourjs'
WEB_APP='svr/ourjs.js'

location of node you want to use

NODE_EXE=/root/local/bin/nodewhile true;
do {
$NODE_EXE $WEB_DIR/$WEB_APP config.magazine.js
echo "Stopped unexpected, restarting "
}
2>> $WEB_DIR/error.log
sleep 1done

錯誤日志記錄也非常簡單谷丸,直接將此進程控制臺當中的錯誤輸出到error.log文件即可: 2>> $WEB_DIR/error.log 這一行, 2 代表 Error堡掏。

注意

80 端口需要sudo 來執(zhí)行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市刨疼,隨后出現(xiàn)的幾起案子布疼,更是在濱河造成了極大的恐慌,老刑警劉巖币狠,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件游两,死亡現(xiàn)場離奇詭異,居然都是意外死亡漩绵,警方通過查閱死者的電腦和手機贱案,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來止吐,“玉大人宝踪,你說我怎么就攤上這事“樱” “怎么了瘩燥?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長不同。 經(jīng)常有香客問我厉膀,道長,這世上最難降的妖魔是什么二拐? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任服鹅,我火速辦了婚禮,結(jié)果婚禮上百新,老公的妹妹穿的比我還像新娘企软。我一直安慰自己,他們只是感情好饭望,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布仗哨。 她就那樣靜靜地躺著,像睡著了一般铅辞。 火紅的嫁衣襯著肌膚如雪厌漂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天巷挥,我揣著相機與錄音桩卵,去河邊找鬼。 笑死,一個胖子當著我的面吹牛雏节,可吹牛的內(nèi)容都是我干的胜嗓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼钩乍,長吁一口氣:“原來是場噩夢啊……” “哼辞州!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寥粹,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤变过,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后涝涤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體媚狰,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年阔拳,在試婚紗的時候發(fā)現(xiàn)自己被綠了崭孤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡糊肠,死狀恐怖辨宠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情货裹,我是刑警寧澤嗤形,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站弧圆,受9級特大地震影響赋兵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜墓阀,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一毡惜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧斯撮,春花似錦、人聲如沸扶叉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枣氧。三九已至溢十,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間达吞,已是汗流浹背张弛。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吞鸭。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓寺董,卻偏偏與公主長得像,于是被迫代替她去往敵國和親刻剥。 傳聞我的和親對象是個殘疾皇子遮咖,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • <<編程基礎(chǔ)-語言JavaScript.Nodejs.Mobile>>https://github.com/ope...
    燕京博士閱讀 933評論 0 2
  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測試 ...
    KeKeMars閱讀 6,331評論 0 6
  • Node.js是目前非常火熱的技術(shù)造虏,但是它的誕生經(jīng)歷卻很奇特御吞。 眾所周知,在Netscape設(shè)計出JavaScri...
    w_zhuan閱讀 3,613評論 2 41
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理漓藕,服務(wù)發(fā)現(xiàn)陶珠,斷路器,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • error code(錯誤代碼)=0是操作成功完成享钞。error code(錯誤代碼)=1是功能錯誤背率。error c...
    Heikki_閱讀 3,381評論 1 9