66 lines
1.7 KiB
Bash
66 lines
1.7 KiB
Bash
#!/bin/bash
|
|
# Verify Cockpit NVIDIA GPU dashboard health
|
|
# Returns non-zero exit code if anything is wrong.
|
|
|
|
FAIL=0
|
|
|
|
echo "=== Checking systemd service ==="
|
|
if systemctl is-active --quiet nvidia-gpu-monitor; then
|
|
echo " [PASS] nvidia-gpu-monitor service is running"
|
|
else
|
|
echo " [FAIL] nvidia-gpu-monitor service is NOT running"
|
|
FAIL=1
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Checking data files ==="
|
|
for f in /run/nvidia-gpu.txt /run/nvidia-processes.txt /run/nvidia-cuda.txt; do
|
|
if [ -f "$f" ]; then
|
|
CONTENT=$(head -1 "$f")
|
|
echo " [PASS] $f: $CONTENT"
|
|
else
|
|
echo " [FAIL] $f does not exist"
|
|
FAIL=1
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "=== Checking Cockpit package ==="
|
|
MANIFEST="/usr/share/cockpit/nvidia-gpu/manifest.json"
|
|
INDEX="/usr/share/cockpit/nvidia-gpu/index.html"
|
|
if [ -f "$MANIFEST" ] && [ -f "$INDEX" ]; then
|
|
echo " [PASS] Cockpit nvidia-gpu package installed"
|
|
echo " Manifest: $(wc -c < "$MANIFEST") bytes"
|
|
echo " Index: $(wc -c < "$INDEX") bytes"
|
|
else
|
|
echo " [FAIL] Cockpit package files missing"
|
|
FAIL=1
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Checking GPU accessibility ==="
|
|
GPU_LINE=$(nvidia-smi --query-gpu=name --format=csv,noheader 2>/dev/null | head -1)
|
|
if [ -n "$GPU_LINE" ]; then
|
|
echo " [PASS] GPU detected: $GPU_LINE"
|
|
else
|
|
echo " [FAIL] nvidia-smi not working"
|
|
FAIL=1
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Cockpit service ==="
|
|
if systemctl is-active --quiet cockpit; then
|
|
echo " [PASS] Cockpit running on port 9090"
|
|
else
|
|
echo " [FAIL] Cockpit is not running"
|
|
FAIL=1
|
|
fi
|
|
|
|
echo ""
|
|
if [ "$FAIL" -eq 0 ]; then
|
|
echo "All checks passed. GPU dashboard should be functional."
|
|
else
|
|
echo "Some checks FAILED. See above."
|
|
fi
|
|
exit $FAIL
|