作者:亚艾元技术部
我们开发了一个后端的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 // 程序崩溃后自动重启 }] }