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

时间:2017-03-21 13:52:51

标签: windows batch-file pm2

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

我有一个JSON格式的pm2 process file,用于启动我的所有应用。

C:\ PM2 \ process.json

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

我有一个使用JSON文件的批处理文件:

C:\ PM2 \ PM2-的startup.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列表为空..?

1 个答案:

答案 0 :(得分:2)

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

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

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

@echo off

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

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

启动PM2并运行程序。现在,您只需将bat文件保存到某个地方,然后通过单击“开始”按钮在>中创建Windows Startup文件夹中的快捷方式。运行 - > shell:启动并将其粘贴在那里。