學習使用PM2管理nodejs程式

龍恩0707發表於2019-01-06

在專案中,偶爾對命令會忘記一下,所以在此記錄下pm2的常用命令。

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

2. pm2 安裝及使用

安裝命令如下:

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 這樣啟動下,如下所示:

然後在瀏覽器中訪問 http://localhost:3000/ 就可以列印如下效果了:

但是現在我們有pm2了,我們可以使用pm2來管理我們的node應用程式進行管理。我們只需要執行 pm2 start app.js 即可;如下:

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

下面是pm2 常用的命令:

$ 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 // 啟動並生成一個配置檔案

相關文章