
江江好-pm2的基础使用
PM2 介绍
PM2(Process Manager 2)是一个强大的 Node.js 进程管理工具,它可以帮助你简化 Node.js 应用的部署和管理。它提供了许多功能,包括进程守护、自动重启、日志管理等,使得在生产环境中运行 Node.js 应用更加方便和稳定。
安装 PM2
在开始使用 PM2 之前,你需要先安装 Node.js 和 npm(Node.js 包管理器)。然后,你可以使用 npm 全局安装 PM2:
$ npm install pm2 -g
安装完成后,你就可以在命令行中使用 PM2 了。
常用指令介绍
启动应用
要启动一个 Node.js 应用,可以使用以下命令:
$ pm2 start app.js
# 或者启动已有项目指令
$ pm2 start npm --name nest -- start
这将启动一个名为"app"的进程,并将其后台运行。
查看进程列表
要查看当前正在运行的进程列表,可以使用以下命令:
$ pm2 list
这将显示所有已启动的进程及其状态信息,如进程 ID、名称、状态等。
停止应用
要停止一个应用程序,可以使用以下命令:
$ pm2 stop app
这将停止名为"app"的进程。
重启应用
要重新启动一个应用程序,可以使用以下命令:
$ pm2 restart app
这将重新启动名为"app"的进程。
监视日志
PM2 可以帮助你监视应用程序的日志输出。要查看日志,可以使用以下命令:
$ pm2 logs app
这将显示名为"app"的进程的日志输出。你还可以使用--lines
参数指定要显示的行数,例如pm2 logs app --lines 100
。
演示代码
下面是一个简单的 Node.js 应用程序示例,用于演示 PM2 的使用:
// app.js
const http = require("http");
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader("Content-Type", "text/plain");
res.end("Hello, PM2!");
});
server.listen(3000, "localhost", () => {
console.log("Server running at http://localhost:3000/");
});
在应用程序的根目录下创建一个名为app.js
的文件,并将以上代码复制到文件中。
在 CentOS 上使用 PM2
以下是在 CentOS 上使用 PM2 时的一些建议和注意事项:
-
确保已安装 Node.js 和 npm:在 CentOS 上安装 Node.js 和 npm 的方法可以参考官方文档或其他相关资源。
-
使用合适的权限:在 CentOS 上运行 PM2 时,确保你拥有足够的权限来执行所需的操作。对于生产环境,建议使用非特权用户来运行应用程序。
-
设置自启动:你可以使用
pm2 startup
命令将 PM2 设置为开机自启动。它将生成一个启动脚本,以便在系统启动时自动启动已配置的应用程序。 -
监视系统资源:使用 PM2 时,要注意监视系统资源的使用情况,例如 CPU、内存和磁盘空间。PM2 提供了一些内置的监视功能,可以帮助你实时监控应用程序的资源消耗。
常见问题
常见问题
1. PM2 如何在后台运行应用程序?
默认情况下,PM2 会将应用程序作为后台进程运行。当你使用pm2 start
命令启动应用程序时,它会自动在后台启动。你可以使用pm2 list
命令查看正在运行的进程列表。
2. 如何设置应用程序的环境变量?
你可以使用--env
参数来设置应用程序的环境变量。例如:
$ pm2 start app.js --env production
这将在启动应用程序时将环境变量设置为"production"。
3. 如何监视应用程序的内存和 CPU 使用情况?
你可以使用pm2 monit
命令来监视应用程序的内存和 CPU 使用情况。它将显示实时的资源使用情况,并帮助你了解应用程序的性能表现。
4. 如何在 PM2 中管理多个应用程序?
你可以使用不同的名称启动多个应用程序,并使用这些名称来管理它们。例如:
$ pm2 start app1.js --name app1
$ pm2 start app2.js --name app2
这将启动两个应用程序,并分别使用"app1"和"app2"作为它们的名称。你可以使用这些名称来执行各种管理操作,例如停止、重启和查看日志。
5. 如何更新 PM2 本身?
要更新 PM2 到最新版本,可以使用以下命令:
$ npm install pm2@latest -g
这将使用 npm 安装最新版本的 PM2。