在 Ubuntu 上 Node.js 进程“崩溃”通常不是单一原因,而是几类常见问题之一。下面按最常见 → 较少见的顺序说明,并给出排查方法。
现象
Killeddmesg 里有 Out of memory原因
排查
dmesg | grep -i "oom\|killed"
free -h
解决
node --max-old-space-size=2048 app.js
现象
Uncaught Error常见错误
throw new Error('x') // 没有 try/catch
promise.then(...) // 没有 .catch
解决
process.on('uncaughtException', e => {
console.error(e);
process.exit(1);
});
process.on('unhandledRejection', e => {
console.error(e);
});
现象
EADDRINUSE
EACCES
原因
排查
lsof -i:3000
现象
GLIBC_2.x not found原因
建议
node -v
cat /etc/os-release
使用 LTS 版本(推荐 18 / 20)
现象
Cannot find moduleSegmentation fault解决
rm -rf node_modules package-lock.json
npm install
使用 npm ci 更稳妥。
pm2 logs
pm2 describe app
MemoryMax=512M
查看:
journalctl -u your-service
bcryptsharpsqlite3现象
Segmentation fault (core dumped)
解决
node -v
free -h
dmesg | tail
journalctl -xe
pm2 logs
你可以贴出:
我可以精准定位是哪一种崩溃原因。