學習使用PM2管理nodejs進程

在項目中,偶爾對命令會忘記一下,因此在此記錄下pm2的經常使用命令。node

1. pm2是什麼?
pm2 是一個帶有負載均衡的Node應用的進程管理器, 它可以管理Node應用,還可以對應用的運行狀態進行監控。web

2. pm2 安裝及使用npm

安裝命令以下:json

npm install pm2 -g

好比說 我在項目中有一個 app.js 啓動程序,代碼以下:瀏覽器

const Koa = require('koa');

const app = new Koa();

app.use(async (ctx, next) => {
  ctx.response.body = 'hello world';
  await next();
});

app.listen(3000);
console.log('app started at port 3000...');

而後每次啓動下該本地項目服務,咱們須要 node app.js 這樣啓動下,以下所示:app

而後在瀏覽器中訪問 http://localhost:3000/ 就能夠打印以下效果了:負載均衡

可是如今咱們有pm2了,咱們可使用pm2來管理咱們的node應用進程進行管理。咱們只須要運行 pm2 start app.js 便可;以下:koa

而後在瀏覽器中訪問 http://localhost:3000/ 也同樣能看到效果。async

下面是pm2 經常使用的命令:ui

$ npm install pm2 -g          // pm2 命令安裝
$ pm2 start app.js -i 2       // 後臺運行pm2,啓動2個app.js
$ pm2 start app.js --name xxx // 命名進程爲xxx

好比以下所示:

$ pm2 list            // 顯示全部進程狀態
$ pm2 monit           // 監視全部進程
$ pm2 logs            // 顯示全部進程日誌
$ pm2 stop all        // 中止全部進程
$ pm2 restart all     // 重啓全部進程
$ pm2 reload all      // 0秒停機重載進程
$ pm2 stop 0          // 中止指定的進程
$ pm2 restart 0       // 重啓指定的進程
$ pm2 startup         // 產生init腳本,保持進程活着
$ pm2 delete 0        // 殺死指定的進程
$ pm2 delete all      // 殺死所有進程
$ pm2 web             // 監控全部被pm2管理的進程

運行進程的不一樣方式:

$ 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 --name xxxx  // 啓動一個進程並把它命名爲 xxxx
$ 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 // 啓動並生成一個配置文件
相關文章
相關標籤/搜索