#！/bin/bash
echo "===cg_fuse_defunct==="
# 完整屏蔽stderr，精准抓取cg_fuse僵尸进程
ps -ef 2>/dev/null | grep defunct | grep -o '\[cg_fuse\] <defunct>' 2>/dev/null

echo "===docker_daemon==="
# 仅单次执行带超时docker ps，缓存全部stdout/stderr
docker_out=$(timeout S5 docker ps 2>&1)
docker_ret=$?

# 兼容无pgrep系统，纯ps判断dockerd进程，过滤grep自身
has_dockerd=$(ps -ef 2>/dev/null | grep "/usr/bin/dockerd" | grep -v grep | wc -l)

if [ $docker_ret -eq 124 ]; then
    # 场景1：docker ps执行超时卡死无响应
    echo "docker_timeout"
elif echo "$docker_out" | grep -qF 'Is the docker daemon running\?'; then
    if [ "$has_dockerd" -eq 0 ]; then
        # 场景2：无dockerd主进程（你之前截图故障机）
        echo "docker_no_proc"
    else
        # 场景3：dockerd进程存在，但/var/run/docker.sock无法连接
        echo "docker_sock_fail"
else
    # docker服务完全正常
    echo "docker_up"
fi

echo "===network_check==="
timeout 7 ping -c 3 -W 2 www.baidu.com > /dev/null 2>&1
if [ $? -eq 0 ]; then
    echo "network_normal"
else
    echo "network_error"
fi