【发布时间】:2017-08-13 05:42:25
【问题描述】:
我无法让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列表是空的..?
【问题讨论】:
标签: windows batch-file pm2