Files
baijiahao_data_crawl/diagnose_service.sh

69 lines
2.2 KiB
Bash
Raw Permalink Normal View History

2025-12-25 11:16:59 +08:00
#!/bin/bash
# 服务启动失败诊断脚本
echo "================================================================"
echo " 守护进程服务诊断工具"
echo "================================================================"
echo ""
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo "[1] 检查服务状态"
echo "----------------------------------------------------------------"
systemctl status bjh_daemon --no-pager
echo ""
echo "[2] 查看服务错误日志最近50行"
echo "----------------------------------------------------------------"
journalctl -u bjh_daemon -n 50 --no-pager
echo ""
echo "[3] 检查Python环境"
echo "----------------------------------------------------------------"
echo "Python路径: $(which python3)"
python3 --version
echo ""
echo "[4] 检查守护进程脚本"
echo "----------------------------------------------------------------"
if [ -f "$SCRIPT_DIR/data_sync_daemon.py" ]; then
echo "[✓] 脚本存在: $SCRIPT_DIR/data_sync_daemon.py"
ls -lh "$SCRIPT_DIR/data_sync_daemon.py"
else
echo "[X] 脚本不存在: $SCRIPT_DIR/data_sync_daemon.py"
fi
echo ""
echo "[5] 检查Python依赖"
echo "----------------------------------------------------------------"
echo "正在检查requirements.txt中的依赖..."
if [ -f "$SCRIPT_DIR/requirements.txt" ]; then
while IFS= read -r package || [ -n "$package" ]; do
# 跳过空行和注释
[[ -z "$package" || "$package" =~ ^# ]] && continue
# 提取包名(忽略版本号)
pkg_name=$(echo "$package" | cut -d'=' -f1 | cut -d'>' -f1 | cut -d'<' -f1 | tr -d ' ')
if python3 -c "import $pkg_name" 2>/dev/null; then
echo "[✓] $pkg_name"
else
echo "[X] $pkg_name 未安装"
fi
done < "$SCRIPT_DIR/requirements.txt"
else
echo "[!] requirements.txt 不存在"
fi
echo ""
echo "[6] 尝试手动运行守护进程按Ctrl+C停止"
echo "----------------------------------------------------------------"
echo "命令: cd $SCRIPT_DIR && python3 data_sync_daemon.py"
echo ""
read -p "是否现在运行测试?(y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd "$SCRIPT_DIR"
python3 data_sync_daemon.py
fi