我无法让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任务:
如果我手动运行批处理文件(双击它),它可以工作。如果我手动运行计划任务(右键单击,运行),则可以正常运行。
当我重新启动服务器并检查计划任务时,它已运行,没有错误,但应用程序未运行。执行pm2 list
表示表格中没有应用。
我不想使用 pm2-windows-service,因为我不想将pm2作为服务运行(尝试过它并且它很脆弱)。
我不想使用 pm2-windows-startup,因为它似乎无法使用pm2 process file,它只是试图记住是什么以前跑过。
我确实想在启动时使用普通批处理文件。
我对批处理文件做错了什么..?为什么计划任务运行正常,但pm2列表为空..?
答案 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:启动并将其粘贴在那里。