什么是 PM2
PM2 是一个 Node.js 进程管理器,它可以帮助我们启动、重启、停止、管理多个应用程序,并监控它们的状态,实现了 0 秒重载应用程序,提供了日志记录和多种部署选项的功能。它是一个非常实用的工具,特别适用于服务器上的生产环境,简单易用,功能强大。
如何安装 PM2
PM2 的安装非常简单,只需要使用 npm 进行全局安装即可:
npm install pm2 -g
安装完成后,可以使用 pm2 --version 命令来验证是否安装成功。
如何使用 PM2
在使用 PM2 之前,先介绍一下它最基本的命令,以方便我们更好的理解和掌握 PM2。
pm2 start app.js:启动应用程序 app.js。pm2 restart app.js:重启应用程序 app.js。pm2 stop app.js:停止应用程序 app.js。pm2 delete app.js:删除应用程序 app.js。pm2 list:列出所有正在运行的应用程序。pm2 show app.js:显示应用程序 app.js 的详细信息。
启动应用程序
使用 PM2 启动应用程序非常简单,只需要在命令行中输入:
pm2 start app.js
这行命令将会启动当前目录下的 app.js 应用程序,并将其加入 PM2 的进程管理列表中。
查看应用程序状态
使用 PM2 添加了应用程序后,可以使用 pm2 list 命令来查看所有正在运行的应用程序信息,包括运行状态、进程 ID、应用程序名称、CPU 和内存占用情况等。
重启应用程序
如果需要重启应用程序,可以使用 pm2 restart app.js 命令。该命令将会平滑地重启应用程序。如果需要强制重启应用程序,可以使用 pm2 reload app.js 命令。
停止应用程序
如果需要停止应用程序,可以使用 pm2 stop app.js 命令。该命令将会平滑地停止应用程序。如果需要强制停止应用程序,可以使用 pm2 kill 命令。
删除应用程序
如果需要删除已经添加到 PM2 进程列表中的应用程序,可以使用 pm2 delete app.js 命令。该命令将会删除应用程序,并从 PM2 进程列表中移除。
更多命令
除了以上几个命令,PM2 还提供了很多其他的命令,详细信息可以参考官方文档。
pm2 save # 保存当前进程列表 pm2 resurrect # 重启之前已经保存过的进程列表 pm2 startup # 创建开机自启动任务 pm2 log # 显示所有应用程序日志 pm2 monit # 显示所有应用程序的 CPU 和内存占用情况 pm2 reload # 重载进程列表 pm2 update # 更新 PM2 到最新版本
使用 PM2 部署 Node.js 应用程序
当我们需要在生产环境中部署 Node.js 应用程序时,可以使用 PM2 来实现自动化部署和监控。下面是一个基本的部署流程:
- 打包应用程序。
- 将应用程序和必要的文件上传到目标服务器。
- 在目标服务器上使用 PM2 启动应用程序。
- 通过 PM2 进行应用程序的管理和监控,例如实时日志、进程监控、自动重启等。
- 如果需要更新应用程序,重复 1-4 步骤即可。
示例代码:
// www.javascriptcn.com code example
// app.js
const http = require('http');
const os = require('os');
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end(`Hello from ${os.hostname()}\n`);
}).listen(8080);
console.log(`Server running at http://localhost:8080/`);部署流程可参照以下指导:
打包应用程序。
将应用程序和必要的文件上传到目标服务器。
在目标服务器上使用 PM2 启动应用程序。
在目标服务器上安装好 PM2 后,使用
pm2 start app.js命令启动应用程序。如果需要使用多个 CPU 核心来运行应用程序,可以使用pm2 start app.js -i max命令,这将会根据可用 CPU 核心数量启动多个进程来运行应用程序。通过 PM2 进行应用程序的管理和监控。
使用
pm2 list命令可以查看应用程序的运行状态和相关信息。使用pm2 logs命令可以实时查看应用程序的日志文件。使用pm2 monit命令可以查看应用程序的 CPU 和内存占用情况。如果需要对应用程序进行动态调整,可以使用
pm2 scale app +2命令增加应用程序的进程数量,或者使用pm2 stop app和pm2 start app命令重启应用程序。如果需要更新应用程序,重复 1-4 步骤即可。
通过 PM2 的自动部署和监控功能,可以方便地实现 Node.js 应用程序的自动化部署和运维。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c94e26e46428fe9e0856d1