pm2之windows下开机自启动

本文详细介绍了如何在Windows环境下使用PM2服务进行应用程序的管理和监控,包括安装pm2服务、设置系统环境变量、安装并配置windows服务,以及如何通过批处理文件实现启动时自动监控。

1.首先,安装pm2服务:npm i -g pm2-windows-service

2.添加系统环境变量(右键 [我的电脑] - [属性] - [高级系统设置] - [环境变量] - 新建 [系统变量] ):PM2_HOME=D:\.pm2

3.安装windows服务:pm2-service-install,会出现Perform environment setup ? 选 n, 继续就可以

此时,可以通过 [win + r] - [services.msc] 来查看pm2服务,服务名称就叫pm2

4.在dos窗口下cd到app.js或者.bin/www所在目录,运行pm2启动命令:

pm2 start -n 系统服务 ./bin/www -i 2

pm2 l

pm2 save

至此,安装配置完成,可打开之前环境变量设置的D:\.pm2文件夹查看保存的内容

 

卸载windows中pm2服务:pm2-service-uninstall

 

另,可创建一个批处理文件,内容是pm2 monit,将其放在“启动”菜单中,这样,可以在windows启动时启动一个pm2监控窗口

 

你问的是: > 如何使用 `pm2-windows-service` 或 `pm2-windows-startup` 将 PM2 制作成 Windows 服务实现自启动?具体流程是什么? --- ## ✅ 目标 在 **Windows 系统上**,让 Node.js 应用通过 PM2 **开机自动启动、后台静默运行、不受用户登录状态影响**。 由于原生 `pm2 startup windows` 在某些版本中不稳定或失效,推荐使用第三方工具: ### 🔧 推荐方案:`pm2-windows-service` 这是目前最稳定、社区广泛使用的解决方案。 --- ## ✅ 最佳实践:使用 `pm2-windows-service` 创建 Windows Service ### 📦 工具介绍 - 包名:[`pm2-windows-service`](https://www.npmjs.com/package/pm2-windows-service) - 功能:将 PM2 注册为一个真正的 Windows Service(可在「服务」管理器中看到) - 支持:开机自启、系统级运行、无需用户登录 --- ## ✅ 具体操作流程(完整步骤) ### ✅ 步骤 1:安装 `pm2-windows-service`(全局) ```bash npm install -g pm2-windows-service ``` > ⚠️ 必须以管理员身份运行 CMD/PowerShell! --- ### ✅ 步骤 2:安装 Windows Service ```bash pm2-service-install -n "PM2_Service" ``` 📌 参数说明: - `-n "PM2_Service"`:指定服务名称(可自定义) - 第一次运行会提示是否允许权限提升,请选 **是** ✅ 执行成功后输出: ``` The service 'PM2_Service' has been installed. You can start it with: net start "PM2_Service" ``` --- ### ✅ 步骤 3:启动服务 ```bash net start "PM2_Service" ``` 👉 此时 PM2 守护进程已作为系统服务运行。 你可以验证: - 打开「服务」管理器(`services.msc`) - 查找名为 `PM2_Service` 的服务 - 状态应为“正在运行” --- ### ✅ 步骤 4:部署你的应用(正常使用 PM2 命令) 现在你可以像平时一样使用 PM2: ```bash # 启动你的 Node.js 应用 pm2 start app.js --name "my-api" # 或使用配置文件 pm2 start ecosystem.config.js ``` ✅ 这些进程会被 PM2 管理,并由 Windows Service 持久化守护。 --- ### ✅ 步骤 5:保存当前进程列表(关键!) ```bash pm2 save ``` 这会把当前所有运行的应用保存到: ``` C:\Users\adminjwi\.pm2\dump.pm2 ``` ⚠️ **只有执行了 `pm2 save`,重启后才会自动恢复这些应用。** --- ### ✅ 步骤 6:测试重启后是否自动恢复 1. 重启计算机 💻 2. 登录系统(无需任何操作) 3. 打开终端执行: ```bash pm2 list ``` 👉 如果能看到你之前启动的应用(如 `my-api`),说明 **完全成功!** --- ## 🔁 卸载或重装服务(备用命令) ### 停止服务 ```bash net stop "PM2_Service" ``` ### 卸载服务 ```bash pm2-service-uninstall -n "PM2_Service" ``` > ⚠️ 卸载前建议先 `pm2 delete all` 避免残留 --- ## 🛠️ 高级配置(可选) ### 自定义服务描述和启动类型 编辑服务注册表或使用参数: ```bash pm2-service-install -n "MyAppService" --display "My Node.js API Service" --description "Runs PM2-managed Node.js apps" --startup auto ``` | 参数 | 说明 | |------|------| | `--startup auto` | 开机自启(默认) | | `--startup manual` | 手动启动 | | `--display` | 显示名称 | | `--description` | 描述信息 | --- ## 🔄 替代方案对比:`pm2-windows-startup` vs `pm2-windows-service` | 工具 | 是否推荐 | 说明 | |------|----------|------| | [`pm2-windows-service`](https://www.npmjs.com/package/pm2-windows-service) | ✅ 强烈推荐 | 真正的 Windows Service,支持开机自启、系统级运行 | | `pm2 startup windows`(原生命令) | ⚠️ 不稳定 | 某些 PM2 版本不识别,报错 `Init system not found` | | [`pm2-windows-startup`](https://www.npmjs.com/package/pm2-windows-startup) | ❌ 不推荐 | 已过时,最后更新于 2017 年,不再维护 | > 所以优先选择 **`pm2-windows-service`** --- ## ✅ 日志位置与调试 ### PM2 主日志 ``` C:\Users\adminjwi\.pm2\pm2.log ``` ### 应用日志 ``` C:\Users\adminjwi\.pm2\logs\ ``` ### Windows 事件查看器 打开「事件查看器」→ Windows 日志 → 应用程序 搜索来源为 `PM2_Service` 的条目,可用于排查服务启动失败问题。 --- ## ✅ 总结:完整流程图 ```text 1. 管理员权限打开 CMD ↓ 2. npm install -g pm2-windows-service ↓ 3. pm2-service-install -n "PM2_Service" ↓ 4. net start "PM2_Service" ↓ 5. pm2 start your-app.js --name "app" ↓ 6. pm2 save ↓ 7. 重启电脑 → pm2 list → 验证应用仍在运行 ✅ ``` --- ###
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值