問題
最近在linux服務器中部署了一套node服務接口,但是總是過了幾天後接口調用者就反映服務調不起來了,在服務器上看了一下,進程不知道什麼時候崩了。
之前一直是用
forever start app.js
啓動服務
可能的原因
首先,就是代碼問題,調用的時候可能拋出異常,單線程的node服務就直接崩了
解決辦法
捕獲並打印異常,從不退出node服務
用法
app.listen(config.port,()=>{
console.log(config.port,process.pid)
console.log("server online")
});
process.on('uncaughtException', function (err) {
console.log('Caught Exception:' + err);//直接捕獲method()未定義函數,Node進程未被退出。
});
另外
看到網上還有用pm2的,沒用過,不過我感覺捕獲異常相對省事一點吧,當然找到並解決bug是最好的