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