【发布时间】:2020-02-28 17:22:34
【问题描述】:
昨天我部署了我的第一个 nodejs 应用程序,一切都很好,我今天醒来,我看到服务器停止了,因为某些包出错。 如何跟踪所有的错误,让服务器即使出现错误也不会宕机?
【问题讨论】:
-
这能回答你的问题吗? Nodejs process crashed without an exception
-
在现场生产环境中使用 PM2
标签: node.js
昨天我部署了我的第一个 nodejs 应用程序,一切都很好,我今天醒来,我看到服务器停止了,因为某些包出错。 如何跟踪所有的错误,让服务器即使出现错误也不会宕机?
【问题讨论】:
标签: node.js
您可以使用PM2 作为进程管理器
npm install pm2 -g
好的做法是生成一个ecosystem 配置
pm2 ecosystem
生态系统.config.ts
apps: [
{
name: 'My application',
script: 'npm',
args: 'start',
autorestart: true,
instance_var: 'my-app',
out_file: '/path/to/out.log',
log_file: '/path/to/global.log',
error_file: '/path/to/error.log'
}
]
};
您也可以使用npx 而不是全局安装pm2。您可以使用pm2 start ecosystem.config.js(或npx pm2 start ecosystem.config.js,如果您愿意)启动您的应用程序。
要查看已启动进程的列表及其状态,请使用pm2 list 或npx pm2 list
【讨论】:
您可以在崩溃后使用 nodemon 重新启动节点服务器 - 请参阅 here:
安装:
npm install -g nodemon
运行: nodemon -x 'node app.js || touch app.js'
另外,这也应该有效:
npm install pm2 -g
pm2 start server.js --watch
【讨论】: