使用批处理文件在窗口启动时启动 pm2?



我无法让pm2在Windows启动时启动我的应用程序。我正在运行Windows Server 2012 R2 Standard和pm2 2.4.2

我有一个 JSON 格式的 pm2 进程文件,我用它来启动我的所有应用程序。

c:\pm2\process.json

{
"apps": [
{
"name" : "my-app",
"script" : "c:\node\myappindex.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-启动.bat
    • 起始位置:C:\pm2

如果我手动运行批处理文件(双击它),它可以工作。如果我手动运行计划任务(右键单击,运行),它可以工作。

当我重新启动服务器并检查计划任务时,它已运行,没有错误,但是应用程序未运行。执行pm2 list会在表中显示任何应用。

我不想使用pm2-windows-service,因为我不想将 pm2 作为服务运行(尝试过,它很片状)。

我也不想使用pm2-windows-startup,因为它似乎不适用于 pm2 进程文件,它只是试图记住之前运行的内容。

我确实想在启动时使用普通批处理文件。

我对批处理文件做了什么错误..?为什么计划任务运行正常,但 pm2 列表为空..?

我知道这是一个老问题,但我会为将来的搜索留下答案。

您可以在 Windows 启动文件夹中放置.bat文件的快捷方式。

假设 PM2 cmd 在路径中,您的 bat 文件可能如下所示。

@echo off
SET PM2_HOME=C:Userspstart.pm2
pm2 start C:pathtorun.js

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

最新更新