code-review-agent/fix-service-python3.sh
2025-10-13 15:56:28 +03:00

107 lines
3.1 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Скрипт для исправления systemd service (python -> python3)
set -e
# Проверка sudo
if [ "$EUID" -ne 0 ]; then
echo "❌ Этот скрипт должен быть запущен с sudo"
echo "Используйте: sudo bash fix-service-python3.sh"
exit 1
fi
echo "🔧 Исправление ai-review.service..."
# Получаем реального пользователя
REAL_USER=${SUDO_USER:-$USER}
REAL_HOME=$(eval echo ~$REAL_USER)
# Определяем директорию установки
INSTALL_DIR=""
if [ -f "/etc/systemd/system/ai-review.service" ]; then
# Извлекаем путь из существующего service файла
INSTALL_DIR=$(grep "WorkingDirectory=" /etc/systemd/system/ai-review.service | cut -d'=' -f2 | sed 's|/backend||')
echo "📂 Найдена директория установки: $INSTALL_DIR"
else
echo "❌ Service файл не найден"
exit 1
fi
# Проверяем что директория существует
if [ ! -d "$INSTALL_DIR" ]; then
echo "❌ Директория $INSTALL_DIR не существует"
exit 1
fi
# Проверяем что venv существует
if [ ! -f "$INSTALL_DIR/backend/venv/bin/python3" ]; then
echo "❌ Python3 в venv не найден: $INSTALL_DIR/backend/venv/bin/python3"
echo ""
echo "Создайте venv заново:"
echo " cd $INSTALL_DIR/backend"
echo " python3 -m venv venv"
echo " source venv/bin/activate"
echo " pip install -r requirements.txt"
exit 1
fi
echo "✅ venv найден"
# Создаем новый service файл
echo "📝 Создание нового service файла..."
cat > /etc/systemd/system/ai-review.service << EOF
[Unit]
Description=AI Code Review Platform
After=network.target
[Service]
Type=simple
User=$REAL_USER
Group=$REAL_USER
WorkingDirectory=$INSTALL_DIR/backend
Environment="PATH=$INSTALL_DIR/backend/venv/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=$INSTALL_DIR/backend/venv/bin/python3 -m uvicorn app.main:app --host 0.0.0.0 --port 8000
Restart=always
RestartSec=10
StandardOutput=append:/var/log/ai-review/access.log
StandardError=append:/var/log/ai-review/error.log
[Install]
WantedBy=multi-user.target
EOF
echo "✅ Service файл создан"
# Перезагружаем systemd
echo "🔄 Перезагрузка systemd..."
systemctl daemon-reload
# Перезапускаем сервис
echo "🔄 Перезапуск ai-review.service..."
systemctl restart ai-review
# Ждем немного
sleep 3
# Проверяем статус
if systemctl is-active --quiet ai-review; then
echo ""
echo "✅ Сервис успешно запущен!"
echo ""
systemctl status ai-review --no-pager
else
echo ""
echo "❌ Ошибка запуска сервиса"
echo ""
echo "Логи:"
journalctl -u ai-review -n 30 --no-pager
fi
echo ""
echo "Для просмотра логов в реальном времени:"
echo " sudo journalctl -u ai-review -f"