fix: Use python3 instead of python in systemd service + add fix script

This commit is contained in:
Primakov Alexandr Alexandrovich 2025-10-13 15:56:28 +03:00
parent 38539df42c
commit 6d375fd76d

106
fix-service-python3.sh Normal file
View File

@ -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"