From 6d375fd76d64c579ed96409276c79ce194b5a6f9 Mon Sep 17 00:00:00 2001 From: Primakov Alexandr Alexandrovich Date: Mon, 13 Oct 2025 15:56:28 +0300 Subject: [PATCH] fix: Use python3 instead of python in systemd service + add fix script --- fix-service-python3.sh | 106 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 fix-service-python3.sh diff --git a/fix-service-python3.sh b/fix-service-python3.sh new file mode 100644 index 0000000..e69c5c1 --- /dev/null +++ b/fix-service-python3.sh @@ -0,0 +1,106 @@ +#!/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" +