You are here

PM2管理nodejs程序

g089h515r806 的头像
Submitted by g089h515r806 on 星期六, 2020-01-18 03:03

作者:亚艾元技术部

我们开发了一个后端的nodejs程序,部署上线的时候,需要永久的运行下去。开始的时候,使用命令行工具启动,关闭命令行窗口的时候,程序就会关闭。为了解决这个问题,我们尝试了多种解决办法。


后台运行:

npm start &


加上&可以实现后台运行。


使用:

forever start server/index.js

但是这个启动以后报错,后台可见,我的代码目录设置的不对。


中间也尝试了使用pm2,同样报错,后来我尝试了先build一下,然后使用生成的代码运行:

npm run-script build


然后运行

pm2 start ecosystem.config.js


这次成功了。


这是我的配置文件内容:

module.exports = {
  apps: [{
    name: 'API',
    script: './dist/index.js',
    watch: false, // 默认关闭watch 可替换为 ['src']
    ignore_watch: ['node_modules', 'build', 'logs'],
    //out_file: '/logs/out.log', // 日志输出
   // error_file: '/logs/error.log', // 错误日志
    max_memory_restart: '2G', // 超过多大内存自动重启,仅防止内存泄露有意义,需要根据自己的业务设置
    env: {
      NODE_ENV: 'production'
    },
    exec_mode: 'cluster', // 开启多线程模式,用于负载均衡
    instances: 'max', // 启用多少个实例,可用于负载均衡
    autorestart: true // 程序崩溃后自动重启
  }]
}


论坛: