pm2 2.4.2
{
  "apps": [
    {
      "name" : "my-app",
      "script" : "c:\\node\\myapp\index.js"
    }
  ]
}

我有一个使用json文件的批处理文件:
C:\ PM2\PM2-启动.bat
@echo off

set HOMEDRIVE=C:
set PM2_HOME=C:\etc\.pm2
setx /M PM2_HOME C:\etc\.pm2

cd C:\pm2 & pm2 start process.json

我有一个Windows任务计划运行批处理文件:
触发器:启动时
运行方式:管理员帐户
用户是否登录运行:是
以最高权限运行:是
操作:启动程序
脚本:c:\pm2\pm2-startup.bat
起始位置:C:\ PM2
如果我手动运行批处理文件(双击它),它就会工作。如果我手动运行计划任务(单击鼠标右键,运行),它就会工作。
当我重新启动服务器并检查计划的任务时,它已经运行,没有错误,但是应用程序没有运行。执行
pm2 list
不会在表中显示任何应用程序。
我不想使用pm2-windows-service,因为我不想把pm2当作一种服务来运行(尝试过了,但它很脆弱)。
我也不想使用pm2-windows-startup,因为它似乎不适用于pm2 process file,它只是试图记住以前运行的内容。
我确实想在启动时使用纯批处理文件。
批处理文件有什么问题…?为什么计划任务运行正常,但PM2列表为空…?

最佳答案:

我知道这是一个老问题,但我会留下一个答案供以后的搜索。
您可以将.bat文件的快捷方式放在Windows启动文件夹中。
假设pm2命令在path中,则bat文件可能如下所示。

@echo off

SET PM2_HOME=C:\Users\pstart\.pm2

pm2 start C:\path\to\run.js

这将启动pm2并运行程序。现在,您只需将bat文件保存到某个地方,然后单击“开始”按钮->运行->shell:startup并将其粘贴到其中,在windows启动文件夹中创建一个快捷方式。