请教一下windows电脑重启之后pm2 中的服务没有自动启动

pm2版本

$ pm2 -v
2.5.0

pm2启动命令

"pm2": "pm2 start pm2.json --env production"

pm2.json

{
  "apps": [
    {
      "name": "HW-TEST",
      "script": "./server.js",
      "env": {
        "NODE_ENV": "development"
      },
      "env_production": {
        "NODE_ENV": "production"
      }
    }
  ]
}

server.js为一个简单的express程序。
当用npm run pm2 启动后,使用pm2 list 可以看到启动的pm2服务。

$ pm2 list
┌──────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐
│ App name │ id │ mode │ pid  │ status │ restart │ uptime │ cpu │ mem       │ watching │
├──────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤
│ HW-TEST  │ 0  │ fork │ 8228 │ online │ 0       │ 8m     │ 0%  │ 26.1 MB   │ disabled │
└──────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app

然后重启电脑,在命令行输入pm2 list 这之后pm2列表中的服务没有了。
请问一下该如何设置才能使pm2启动一次,关机重启之后pm2自动启动?

阅读 13.8k
2 个回答

pm2 中的服务依托于 pm2 ,因为重启之后 pm2 没有启动,所以 pm2 中的服务也不会启动。

startup 的方式在 Windows 系统下并不支持,官方的文档:
图片描述

实现方法楼上已经说明,如果楼主觉得麻烦,也可以参考下第三方的实现方法 https://github.com/jon-hall/p...

先pm2 start 运行你要开机启动的程序, 再pm2 save,看看 /.pm2/dump.pm2 这个文件检查是否真的保存住了
保存住了就可以 pm2 startup

如果Windows对pm2 支持不够友好,那可以用Windows自带的启动 ,比如把启动这个程序的命令放进bat脚本。
在cmd中输入“gpedit.msc”,打开“组策略”窗口。
依次“计算机配置→Windows设置→脚本(启动/关机)”节点,
双击右侧详细资料窗格中的“启动”项目,单击“添加”按钮,
将你所写的bat脚本添加为新的计算机启动脚本。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题