首页 > 解决方案 > pm2 + KOA process.send 未定义

问题描述

我正在尝试用 pm2 完成“优雅的开始”,但不知何故,我的 process.send 始终未定义。

我正在使用esm模块并使用yarn start启动我的应用程序

我正在记录 process.send,但不知何故它总是未定义。

app.listen(port, () => {
  console.log('process.send', process.send);
  console.log(`Server running on port ${port}`);
});

问题可能出在哪里?

谢谢和最好的问候

标签: node.jsprocesspm2koa2

解决方案


我在pm2中使用npm startas script的应用程序遇到了同样的问题。

我猜pm2需要使用节点中的内部子进程启动应用程序才能process.send('ready')正常工作。

更改"script": "./dist/main.js"pm2使它对我有用。

因此,也许将您的配置和应用程序更改为以下内容:

module.exports = {
  apps: [
    {
      name: 'myApp',
      script: './dist/main.js',
      time: true,
      listen_timeout: 10000,
      env: { environment: 'production', NODE_ENV: 'production', },
    }
  ],
}; 

(取决于您构建的输出)


推荐阅读