我今天來單位發現ElasticSearch-Head掛了,基本上每天早上來上班都是掛掉的,我tm就懷疑這不是一個偶然現象,排查了一番發現是node進程在斷開SSH之後後臺就會停止運行了,網上的方法都試過了,有用nohup的,有用forever的,有直接寫npm start &的,然而都並沒有什麼卵用,懷疑都是沒經過大腦直接抄襲別人的文章。
有效的解決方案是在Linux中安裝pm2來管理node進程,那到底pm2是幹嘛的?網上找了一下介紹:pm2 是一個帶有負載均衡功能的Node應用的進程管理器。可以把你的獨立代碼利用全部的服務器上的所有CPU,並保證進程永遠都活着,0秒的重載。大致意思就是和linux守護進程一樣能一直運行node程序,下面我們來安裝一下
npm install -g pm2
ln -s /data/node-v12.4.0-linux-x64/bin/pm2 /usr/bin/pm2
可以通過pm2 -v 驗證,用法就是下面這幾種
pm2 start npm -- run start
pm2 list
pm2 stop
pm2 restart
pm2 delete
通過pm2來運行你的npm命令就可以保證node程序不會因爲SSH斷開掛掉了。