首页主机资讯Ubuntu Node.js日志中错误代码代表什么

Ubuntu Node.js日志中错误代码代表什么

时间2025-11-18 09:15:04发布访客分类主机资讯浏览216
导读:Ubuntu Node.js 日志常见错误代码含义与处理 快速定位与查看日志 使用 journalctl 查看服务日志(适用于 systemd 管理的服务):journalctl -u your-node-service --no-pag...

Ubuntu Node.js 日志常见错误代码含义与处理

快速定位与查看日志

  • 使用 journalctl 查看服务日志(适用于 systemd 管理的服务):journalctl -u your-node-service --no-pager --since “10 minutes ago”
  • 跟踪文件日志:tail -f logs/app.log
  • 使用 PM2 管理时:pm2 logs your-app;筛选警告:pm2 logs your-app --lines 50 | grep WARN
  • 在日志中快速检索错误:grep -i “error” logs/error.log;或按关键字定位:grep ‘ETIMEDOUT’ app.log
  • 日志通常位于项目目录的 logs/,或系统日志 /var/log/syslog/var/log/messages

常见错误代码含义与修复

错误码 含义 常见触发场景 快速修复
EADDRINUSE 地址已被占用 启动服务时端口被其他进程占用(如端口 3000443 查占用:sudo lsof -i :端口;释放:sudo kill -9 ;或换端口
EACCES 权限被拒绝 绑定低位端口(如 80/443)无 root 权限;写日志文件或读取配置无权限 以具备权限的用户运行(如 sudo);改用高端口(≥1024);修正文件/目录权限
EADDRNOTAVAIL 地址不可用 绑定到本机不存在或未启用的 IP 使用有效 IP(如 0.0.0.0 或本机局域网 IP);检查网络配置
ECONNREFUSED 连接被拒绝 连接的目标主机端口未监听或被防火墙阻断 确认目标服务已启动并监听;检查云安全组/防火墙
ETIMEDOUT 连接超时 访问远程服务或数据库超时 检查网络连通性;适当增加超时;排查对端负载/网络质量
ENOTFOUND DNS 解析失败 域名无法解析 核对域名拼写;检查 DNS 配置(/etc/resolv.conf);测试 nslookup/dig
ENOENT 文件或目录不存在 读取配置、模板、静态资源路径错误 校验路径是否正确;确认文件已部署;使用绝对路径或 path.join
UnhandledPromiseRejectionWarning 未处理的 Promise 拒绝 async/await 或 Promise 缺少 .catch() 给每个 Promise 加 .catch();用 try-catch;全局监听:process.on(‘unhandledRejection’)
MaxListenersExceededWarning 监听器泄漏风险 重复添加事件监听未移除 移除不再需要的监听器;必要时 emitter.setMaxListeners()
ENOMEM 内存不足 堆内存超限、内存泄漏 启动时提升内存上限:node --max-old-space-size=4096 app.js;用 clinic/heapdump 分析泄漏并优化代码

实用排查命令清单

  • 端口占用:sudo lsof -i :3000;sudo kill -9
  • 实时看日志:tail -f logs/app.log;或 journalctl -u your-node-service -f
  • 检索关键字:grep -i “error” logs/error.log;grep ‘ECONNREFUSED|ETIMEDOUT’ app.log
  • 依赖与版本:node -v;npm outdated;npm update
  • DNS 诊断:nslookup your.domain;dig your.domain
  • 内存问题:node --max-old-space-size=4096 your-app.js;clinic doctor – node your-app.js

处理建议与注意事项

  • 不要长期用 kill -9,优先尝试正常关闭(如进程收到 SIGTERM 后清理再退出),减少数据损坏风险。
  • 生产环境避免使用 root 直接运行 Node.js;如需绑定 80/443,用反向代理(如 Nginx)或 systemd 的权限降权配置。
  • 将“未处理的 Promise 拒绝”和“监听器泄漏”当作稳定性问题优先修复,避免线上雪崩。
  • 对外部依赖设置合理的超时与重试,并在日志中记录请求上下文(如 trace_id),便于追踪。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Node.js日志中错误代码代表什么
本文地址: https://pptw.com/jishu/749812.html
Ubuntu Node.js日志如何安全存储 Ubuntu JS日志中的数据库操作记录分析

游客 回复需填写必要信息