fix: Use python3 instead of python in systemd service + add fix script
This commit is contained in:
parent
38539df42c
commit
6d375fd76d
106
fix-service-python3.sh
Normal file
106
fix-service-python3.sh
Normal 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"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user