若是直接經過node app來啓動,若是報錯了可能直接停在整個運行,supervisor感受只是拿來用做開發環境的。再網上找到pm2.目前彷佛最多見的線上部署nodejs項目的有forever,pm2這兩種。
使用場合:node
npm install pm2@latest -g
安裝好以後 須要配置全局環境ln -s opt/node.js/node-v10.13.0-linux-x64/bin/pm2 /usr/local/bin/
opt/node.js/node-v10.13.0-linux-x64/bin/pm2是我node安裝目錄 /usr/local/bin/全局環境配置目錄
pm2 list //這個命令自己是列舉出全部用pm2啓動的程序linux
[root@WeiHuSrv /]# pm2 list ┌──────────┬────┬─────────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐ │ App name │ id │ version │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │ ├──────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤ │ app │ 0 │ 1.0.0 │ fork │ 17362 │ online │ 0 │ 42m │ 0% │ 35.1 MB │ root │ disabled │ └──────────┴────┴─────────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘ Use `pm2 show <id|name>` to get more details about an app
出現這個就成功啦web
$ pm2 logs 顯示全部進程日誌
$ pm2 stop all 中止全部進程
$ pm2 restart all 重啓全部進程
$ pm2 reload all 0秒停機重載進程 (用於 NETWORKED 進程)
$ pm2 stop 0 中止指定的進程
$ pm2 restart 0 重啓指定的進程
$ pm2 startup 產生 init 腳本 保持進程活着
$ pm2 web 運行健壯的 computer API endpoint (http://localhost:8080)
$ pm2 delete 0 殺死指定的進程
$ pm2 delete all 殺死所有進程npm
運行進程的不一樣方式:
$ pm2 start app.js -i max 根據有效CPU數目啓動最大進程數目
$ pm2 start app.js -i 3 啓動3個進程
$ pm2 start app.js -x 用fork模式啓動 app.js 而不是使用 cluster
$ pm2 start app.js -x -- -a 23 用fork模式啓動 app.js 而且傳遞參數 (-a 23)
$ pm2 start app.js --name serverone 啓動一個進程並把它命名爲 serverone
$ pm2 stop serverone 中止 serverone 進程
$ pm2 start app.json 啓動進程, 在 app.json裏設置選項
$ pm2 start app.js -i max -- -a 23 在--以後給 app.js 傳遞參數
$ pm2 start app.js -i max -e err.log -o out.log 啓動 並 生成一個配置文件json
關於pm2遠程部署到多臺機器,參考:app
http://pm2.keymetrics.io/docs...負載均衡
官網:網站