34.6 pm2 部署
34.6.1 关于 pm2
pm2
是 NodeJS
平台高级生产流程管理器,也是一个守护进程管理器,它能够管理和保持应用程序 7*24 小时在线。
pm2
优点:
- 简单易用
- 跨平台
- 容器集成
- 内置集群、负载均衡
- 支持模块系统
- 支持实时监测
- 支持日志管理
- 支持关键指标监控 ....
想了解更多 pm2
知识可查阅 https://pm2.keymetrics.io/。
34.6.2 如何安装
- 系统安装
NodeJS
环境 https://nodejs.org/en/
相信大部分人电脑都已经安装。
- 通过
npm
或yarn
全局安装pm2
工具
npm:
npm install pm2@latest -g
yarn:
yarn global add pm2
34.6.3 托管 .NET5/6
应用程序
34.6.3.1 非单文件/非独立发布模式
这种模式的特点就是需要服务器安装 .NET5/6
的环境
pm2 start --name xxx dotnet -- xxx.dll
指定端口
如需指定端口,可使用下列命令:
pm2 start --name xxx dotnet -- PMS.Web.Entry.dll --urls=https://localhost:8089
注意 --
后面可以写完整的 dotnet
命令。
命令说明
xxx.dll
为项目发布后的启动层名称。
--name
配置应用程序在 pm2
中的唯一标识。
终端说明
注意:通过 --
传递参数在 powershell
终端下无效,需要在 cmd
终端下才行。比如出现这样的错误:

34.6.3.2 单文件/独立发布模式
这种模式的特点就是无需服务器安装 .NET
任何环境,可查阅 单文件发布文档
pm2 start --name xxx PMS.Web.Entry.exe
指定端口
如需指定端口,可使用下列命令:
pm2 start --name xxx PMS.Web.Entry.exe -- --urls=https://localhost:8089
注意 --
后面可以写完整的 dotnet
命令。
命令说明
xxx.exe
为项目发布后的启动层名称,如果名称包含 空格
,则使用双引号包裹,如 "x xx.exe"
。
--name
配置应用程序在 pm2
中的唯一标识。
终端说明
注意:通过 --
传递参数在 powershell
终端下无效,需要在 cmd
终端下才行。

34.6.3.3 启用应用程序
执行上述命令后会显示启动成功日志,如:
PS C:\Users\bqrjsoft\Desktop\pms> pm2 start --name pms PMS.Web.Entry.exe
[PM2] Starting C:\Users\bqrjsoft\Desktop\pms\PMS.Web.Entry.exe in fork_mode (1 instance)
[PM2] Done.
┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ pms │ default │ N/A │ fork │ 41764 │ 0s │ 0 │ online │ 0% │ 85.0mb │ bqrjsoft │ disabled │
└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────── ──┴──────────┘
PS C:\Users\bqrjsoft\Desktop\pms>

关于端口
ASP.NET Core
程序默认端口都是 5000
,如 http://localhost:5000
。