安装PM2为Windows服务
PM2
PM2是一个进程管理工具,通常我们用它来管理node进程。
详细请参考官网文档。
pm2-windows-service
pm2-windows-service 是一个NPM包,用它可以轻松地在Windows机器上安装PM2为一个Windows服务。
安装NPM包
1 | $ npm i pm2-windows-service -g |
安装服务
1 | $ pm2-service-install |
安装服务后,在服务列表中可以查看到此服务。
在执行pm2 start
之后记得保存状态。
1 | $ pm2 save |
卸载服务
1 | $ pm2-service-uninstall |
常见问题
执行
pm2-service-install
后,在服务列表中可以查看到服务,但服务的状态不是正在运行。右键服务列表中的PM2, 查询到Windows服务启动的路径,进入该目录(例如:
C:\Users\toplinker\AppData\Roaming\npm\node_modules\pm2-windows-service\src\daemon
)。在该目录下,有一个日志文件
pm2.err.log
,此文件详细记录了该windows服务启动失败的原因。可以根据原因逐步排查。a) 如果日志中提示 Sorry, this script requires pm2.
这种情况下大概率是PM2的路径没有正确配置,可手动修改
dump.pm2
文件中的PM2_SERVICE_PM2_DIR
,并删除PM2_SERVICE_SCRIPTS
, 例如:1
2
3{
"PM2_SERVICE_PM2_DIR": "C:\\Users\\toplinker\\AppData\\Roaming\\npm\\node_modules\\pm2"
}dump.pm2
文件是在pm2-service-install执行过程中指定的,它的路径取决于你的指定。在服务列表中可以查看到服务,服务也是正在运行的状态。但重启电脑后,
pm2 list
中并没有之前启动的进程。
请确认有正确执行
pm2 save
.1
2$ pm2 start server.js
$ pm2 save
如果之前已经安装了类似包,建议先卸载之前安装的npm包。若卸载后服务列表中仍然存在,可手动删除服务。
1
$ sc delete pm2.exe # pm2.exe是服务的名称,可在服务列表右键中查看