Pm2 问题 - fs.readfilesync 当进程从 ecosystem.config.js 开始时找不到文件

Pm2 issue - fs.readfilesync file not found when procces started from ecosystem.config.js

我运行正在 GVM 实例中安装 2 个节点应用程序。在他们两个中,我正在加载一些 SSL 证书。如果应用程序单独 运行 一切都很好( pm2 start path/to/server.js )

但是当我创建一个 ecosystem.config.js 并尝试启动两个服务器时,我得到一个找不到节点错误文件。

我的生态系统文件:

module.exports = {
apps:[
{ name:"ServerProd",
script: "./backend/server.js" },
{name:"SocketProd",
script:"./socket/WSserver.js"}
]
}

尝试用 (./filename) (path.join(dir + ./filename) 和 (filename) 解析文件,结果都一样。什么我不见了?

显然问题出在我的文件夹结构上。 pm2 生态系统文件以某种方式将根目录传递给 nodejs 实例。我设法通过将 "cwd" 选项添加到我的生态系统文件来解决这个问题。 所以:

apps:[
{ 
name:"ServerProd",
script: "./backend/server.js" 
},
{
name:"SocketProd",
script:"./socket/WSserver.js"}
]
}

变成了:

module.exports = {
apps:[
{ 
name:"ServerProd",
script: "server.js",
cwd:"./backend/" 
},
{
name:"SocketProd",
script:"WSserver.js",
cwd:"./socket/"}
]
}

一切都按预期进行