前言
Node.js 是一种非常流行的后端开发语言,而 PM2 则是用于 Node.js 应用的进程管理工具,它可以帮助我们快速地启动、停止、重启、监控和管理多个 Node.js 应用。在实际项目开发过程中,我们通常需要同时管理多个 Node.js 应用,因此 PM2 的使用对于提升开发效率和项目运维非常有帮助。
本文将介绍如何配置 PM2,以及如何高效地管理多个 Node.js 应用。
安装 PM2
首先,我们需要安装 PM2。可以通过以下命令来全局安装 PM2。
npm install pm2 -g
启动 Node.js 应用
启动 Node.js 应用非常简单,只需要在命令行执行以下命令即可。
pm2 start app.js
其中,app.js 是 Node.js 应用的入口文件。如果有其他的参数,可以在后面加上,例如:
pm2 start app.js --name=myapp --watch
这里我们使用了两个命令行参数:--name
和 --watch
。
--name
表示 PM2 启动这个应用的名称,方便后续我们进行操作和查看日志等信息。--watch
表示 PM2 监听指定的文件或目录,当文件或目录中的文件发生变化时,PM2 会自动重启应用。
查看应用状态
可以使用以下命令查看所有的进程状态。
pm2 status
可以看到,我们刚才启动的名为 myapp
的 Node.js 应用的状态为 online,当前有一个实例在运行。
┌──────────┬────┬─────────┬───┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐ │ App name │ id │ version │ c │ status│ restart│ uptime │ memory │ user │ watching │ disabled │ ├──────────┼────┼─────────┼───┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤ │ myapp │ 0 │ 1.0.0 │ 1 │ online│ 0 │ 1s │ 50.9MB │ user│ enabled │ │ └──────────┴────┴─────────┴───┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘
如果我们需要查看具体某个应用的状态,可以使用以下命令。
pm2 status <app_name>
例如:
pm2 status myapp
日志管理
PM2 提供了强大的日志管理功能,可以方便地查看 Node.js 应用的日志。
可以使用以下命令查看所有应用的日志。
pm2 logs
如果我们需要查看具体某个应用的日志,可以使用以下命令。
pm2 logs <app_name>
例如:
pm2 logs myapp
进程管理
在实际项目中,我们可能需要对进程进行一些管理操作,例如:停止、重启、删除等。
停止应用
可以使用以下命令停止所有的进程。
pm2 stop all
可以使用以下命令停止指定的应用。
pm2 stop <app_name>
例如:
pm2 stop myapp
重启应用
可以使用以下命令重启所有的进程。
pm2 restart all
可以使用以下命令重启指定的应用。
pm2 restart <app_name>
例如:
pm2 restart myapp
删除应用
可以使用以下命令删除指定应用。
pm2 delete <app_name>
例如:
pm2 delete myapp
高效管理多个应用
在实际项目开发中,我们通常需要同时管理多个 Node.js 应用。这时,我们需要对 PM2 进行配置,以提高效率。
配置文件
我们可以使用配置文件来定义应用的启动参数和命令行参数等。
在应用的根目录下创建一个 ecosystem.config.js
文件,内容如下所示。
-- -------------------- ---- ------- -------------- - - ---- - - - ---- - -------- ------ - ----------- ----- - ----- ---- - ----------- ------------- -- -------------- - - ----------- ------------ - - - -
其中,apps
数组中可以定义多个应用。每个应用包含以下参数。
name
:应用名称script
:入口文件watch
:文件或目录的路径,当文件或目录发生变化时,PM2 会自动重启应用env
:环境变量(开发环境)env_production
:环境变量(生产环境)
启动应用
在应用的根目录下执行以下命令,启动所有的应用。
pm2 start ecosystem.config.js
可以看到,所有的应用都已经成功启动,并且状态为 online
。
┌──────────┬────┬─────────┬───┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐ │ App name │ id │ version │ c │ status│ restart│ uptime │ memory │ user │ watching │ disabled │ ├──────────┼────┼─────────┼───┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤ │ myapp │ 0 │ 1.0.0 │ 1 │ online│ 0 │ 1s │ 50.9MB │ user│ enabled │ │ │ myapp2 │ 1 │ 1.0.0 │ 1 │ online│ 0 │ 1s │ 50.9MB │ user│ enabled │ │ └──────────┴────┴─────────┴───┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘
进程守护
有时候,我们可能需要在进程意外退出时,自动重启应用。可以使用以下命令开启进程守护功能。
pm2 startup pm2 save
pm2 startup
命令会生成一个启动脚本,这可以在系统启动时自动启动 PM2。pm2 save
命令会将当前 PM2 进程列表保存到文件中,这样可以在重启服务器时恢复之前的 PM2 进程列表。
结论
通过本文,我们学习了如何配置 PM2,以及如何高效地管理多个 Node.js 应用。PM2 是一个非常强大的进程管理工具,可以帮助我们提升开发效率和项目运维。在实际项目中,我们建议使用 PM2 来管理 Node.js 应用,它会极大地提升我们的工作效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670b0dc5d91dce0dc886f9d9