1. 使用 journalctl 查看完整日志
bash
# 查看服务的所有日志(从最早开始)
sudo journalctl -u system-monitor# 查看完整日志并实时跟踪新日志
sudo journalctl -u system-monitor -f# 查看最近100行日志
sudo journalctl -u system-monitor -n 100# 查看从今天开始的日志
sudo journalctl -u system-monitor --since today# 查看最近1小时的日志
sudo journalctl -u system-monitor --since "1 hour ago"
2. 查看更详细的日志信息
bash
# 显示完整的日志(不截断长行)
sudo journalctl -u system-monitor --no-pager# 以JSON格式显示完整日志(包含所有字段)
sudo journalctl -u system-monitor -o json-pretty# 显示日志的所有字段
sudo journalctl -u system-monitor -o verbose
3. 按时间范围查看
bash
# 查看特定时间段的日志
sudo journalctl -u system-monitor --since "2024-10-14 20:00:00" --until "2024-10-14 21:00:00"# 查看最近30分钟的日志
sudo journalctl -u system-monitor --since "30 min ago"# 查看从系统启动以来的日志
sudo journalctl -u system-monitor -b
4. 按优先级过滤
bash
# 只查看错误信息
sudo journalctl -u system-monitor -p err# 查看警告及以上级别的日志
sudo journalctl -u system-monitor -p warning# 查看所有级别的日志(包括debug)
sudo journalctl -u system-monitor -p debug
5. 导出日志到文件
bash
# 导出完整日志到文件
sudo journalctl -u system-monitor --no-pager > system-monitor-full.log# 导出并实时查看
sudo journalctl -u system-monitor -f | tee system-monitor-live.log
6. 调试服务启动问题
bash
# 查看服务启动的完整过程(包括依赖)
sudo systemctl status system-monitor -l --no-pager# 查看服务的环境变量和执行上下文
sudo systemctl show system-monitor# 查看服务的所有属性
sudo systemctl show system-monitor -p
7. 实时监控服务状态和日志
bash
# 在一个终端中实时查看状态
watch -n 2 'sudo systemctl status system-monitor'# 在另一个终端中实时查看日志
sudo journalctl -u system-monitor -f
8. 重置和清理日志
如果日志太多,可以清理后重新查看:
bash
# 查看日志占用的磁盘空间
sudo journalctl --disk-usage# 清理旧的日志(保留最近一段时间)
sudo journalctl --vacuum-time=1d# 或者限制日志大小
sudo journalctl --vacuum-size=100M
推荐使用的调试命令组合
对于你的情况,建议按顺序运行:
bash
# 1. 查看服务的完整状态
sudo systemctl status system-monitor -l# 2. 查看所有历史日志
sudo journalctl -u system-monitor --no-pager# 3. 实时监控新日志
sudo journalctl -u system-monitor -f
针对 203/EXEC 错误的专门调试
bash
# 查看详细的执行失败信息
sudo journalctl -u system-monitor -o verbose --no-pager# 检查系统级别的执行错误
sudo journalctl -p 3 -b --no-pager# 查看所有失败的systemd服务
sudo systemctl --failed --no-pager
使用这些命令,你应该能够看到完整的日志信息,包括脚本输出的所有内容,从而更好地诊断问题。