69 lines
2.2 KiB
Bash
69 lines
2.2 KiB
Bash
|
|
#!/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
|