Files
baijiahao_data_crawl/diagnose_service.sh
“shengyudong” 322ac74336 2025-12-25 upload
2025-12-25 11:16:59 +08:00

69 lines
2.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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