我只是想知道是否可以分离我的 pm2 实例。例如,假设我有一个在一个终端中启动的生态系统文件,然后我继续在另一个终端中启动另一个生态系统文件。两个进程似乎合并并开始输出相同的日志。很快就变得非常烦人。有没有办法把它们分开?
PM2 默认使用
.pm2
文件夹来放置其日志和 .pid 文件。 PM2 使用 PM2_HOME 环境变量来了解该文件夹的位置。当我将文件夹移动到更大的驱动器时,我发现了这一点,并在检查它正在监视的应用程序时最终得到了一个新实例。如有关运行多个 PM2 实例的文档中所述,您只需为每个实例指定不同的文件夹即可运行多个 PM2 实例:
PM2_HOME='.pm2' pm2 start echo.js --name="echo-node-1"
PM2_HOME='.pm3' pm2 start echo.js --name="echo-node-2"
请记住,要运行任何 PM2 命令,您必须添加正确的 PM2_HOME 前缀:
PM2_HOME='.pm2' pm2 list
PM2_HOME='.pm3' pm2 list
这个聚会有点晚了,但对于未来的任何人来说:
这个问题的问题是日志文件在两个实例中合并并输出。
要解决此问题,在每个生态系统文件中,您需要使用
error_file
和 out_file
为每个实例上的日志文件添加不同的位置/文件名
示例:
module.exports = {
apps: [
{
name: 'Process name',
script: 'index.js',
error_file: '/path/to/error/file.log',
out_file: '/path/to/log/file.log',
...additionalProperties
}
]
};
了解更多信息,请参阅PM2生态系统文档