在 Debian 上“JS 日志启动失败”通常不是系统自带的问题,而是某个用 JavaScript 写的服务 / 日志采集程序(如 Node.js 应用、PM2、日志 agent)启动时报错。下面按最常见原因给你一个排查清单。
先搞清楚你指的是哪一个:
winston、pino、自研脚本)可以用:
journalctl -xe
systemctl status your-js-service
pm2 logs
node -v
如果提示 command not found:
apt install nodejs npm
或版本太低(Debian 旧版常见):
node --version
# 建议 >= 16
JS 日志通常写:
/var/log/xxx/
/opt/xxx/logs/
./logs/
检查:
ls -ld /var/log/your-app
解决:
mkdir -p /var/log/your-app
chown -R youruser:youruser /var/log/your-app
示例错误:
EACCES: permission denied, open '/var/log/xxx/app.log'
解决方式:
User=有些 JS 程序先初始化日志再起服务,端口冲突会表现为“启动失败”。
ss -tulnp | grep 3000
常见错误:
Cannot find module 'config'
Error: log path not defined
检查:
.env
config/default.json
PM2 默认日志在:
~/.pm2/logs/
如果 home 目录不可写会失败:
pm2 startup
pm2 save
df -h
日志写不进去会直接启动失败。
# 1. 看系统日志
journalctl -xe
# 2. 手动启动看真实错误
node app.js
# 3. 检查日志目录
ls -ld /var/log/your-app
# 4. 检查 node 版本
node -v
你可以贴出:
cat /etc/os-release)我可以直接帮你定位到具体哪一行导致 JS 日志启动失败。