サーバサイドアプリケーションをJavaScriptで動かすとき、実際のサービスではプロセスマネージャが欲しくなります。
今回、PM2を試して見ました。
参考)https://pm2.keymetrics.io/docs/usage/quick-start/
環境)express / node v20.15.0, npm 10.7.0, npx 10.7.0 / Mac nodebrew
app.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
const express = require('express') const process = require('process') const app = express() const port = 3000 app.get('/', (req, res) => { res.send('Hello! : ' + process.pid + "\n") }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) }) (base) kzn@macm express % vi app.js (base) kzn@macm express % cat app.js const express = require('express') const process = require('process') const app = express() const port = 3000 app.get('/', (req, res) => { res.send('Hello! : ' + process.pid + "\n") }) app.listen(port, () => { console.log(`Listening on port ${port}`) }) |
Express でサーバを立ち上げ、curlコマンドで連続実行(while : ; do ; curl localhost:3000 ; done)して、プロセスを確認(ps -ef)します。
プロセスに分散して実行されていることを確認できました。