Files
shop10/scripts/diagnose-shop-service.sh
T

44 lines
1.5 KiB
Bash

#!/bin/bash
# Диагностика службы shop
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/shop-root.sh"
echo "=== Диагностика shop.service ==="
echo "SHOP_ROOT=$SHOP_ROOT"
echo
echo "1. Unit"
systemctl cat shop.service 2>/dev/null | head -25 || echo " shop.service не найден"
echo
echo "2. PostgreSQL"
systemctl is-active postgresql 2>/dev/null || systemctl is-active 'postgresql@*' 2>/dev/null || echo " postgresql: не active"
pg_isready -q 2>/dev/null && echo " pg_isready (socket): OK" || echo " pg_isready (socket): FAIL"
pg_isready -h 127.0.0.1 -p 5432 -q 2>/dev/null && echo " pg_isready 127.0.0.1: OK" || echo " pg_isready 127.0.0.1: FAIL"
echo
echo "3. .env"
if [ -f "$SHOP_ROOT/.env" ]; then
ls -la "$SHOP_ROOT/.env"
grep -E '^(DATABASE_URL|HOST|PORT|NODE_ENV)=' "$SHOP_ROOT/.env" | sed 's/=.*/=***/' || true
else
echo " .env не найден"
fi
echo
echo "4. www-data доступ"
sudo -u www-data test -r "$SHOP_ROOT/package.json" && echo " package.json: OK" || echo " package.json: FAIL"
sudo -u www-data test -x "$SHOP_ROOT" && echo " каталог: OK" || echo " каталог: FAIL"
echo
echo "5. Тест Node (5 сек)"
set +e
timeout 8 sudo -u www-data bash -c "cd '$SHOP_ROOT' && set -a && source .env 2>/dev/null && set +a && node src/server.js" 2>&1 | head -20
set -e
echo
echo "6. journalctl shop"
journalctl -u shop -n 30 --no-pager 2>/dev/null || true