结论:先上进程守护工具,再去定位挂掉的真实原因,两步都不能省。
① 用 PM2 托管:pm2 start app.js --name 站点名,再执行 pm2 startup 和 pm2 save 配置开机自启,进程崩溃后会自动拉起,避免站点长时间不可用。
② 查日志:pm2 logs 看崩溃前的报错堆栈,重点排查未捕获的 Promise 异常和内存溢出,后者常见于一次性读大文件或缓存无上限增长。
③ 加全局兜底:监听 process 的 uncaughtException 和 unhandledRejection,记录日志后优雅退出,交给 PM2 重启,别让进程带病运行。
④ 看系统层:dmesg 里若有 OOM killer 记录,说明是服务器内存不足被系统杀掉,需要限制 Node 内存上限或升级配置。