98 lines
3.1 KiB
Bash
98 lines
3.1 KiB
Bash
#!/bin/bash
|
||
|
||
# AI Server Stop Script for Ubuntu
|
||
|
||
set -e
|
||
|
||
# Colors
|
||
GREEN='\033[0;32m'
|
||
RED='\033[0;31m'
|
||
YELLOW='\033[1;33m'
|
||
BLUE='\033[0;34m'
|
||
NC='\033[0m'
|
||
|
||
echo -e "${BLUE}⏹️ Остановка AI Server...${NC}"
|
||
|
||
# Check if running as root for system services
|
||
if [[ $EUID -eq 0 ]]; then
|
||
echo -e "${YELLOW}Остановка системных сервисов...${NC}"
|
||
|
||
# Stop Web UI service
|
||
echo "🌐 Остановка веб-интерфейса..."
|
||
if systemctl is-active --quiet ai-server-webui; then
|
||
systemctl stop ai-server-webui
|
||
echo -e "${GREEN}✅ Веб-интерфейс остановлен${NC}"
|
||
else
|
||
echo -e "${YELLOW}⚠️ Веб-интерфейс не был запущен${NC}"
|
||
fi
|
||
|
||
# Stop Ollama service (optional)
|
||
read -p "Остановить Ollama сервер? (y/N): " -n 1 -r
|
||
echo
|
||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||
echo "🤖 Остановка Ollama..."
|
||
systemctl stop ollama
|
||
echo -e "${GREEN}✅ Ollama остановлен${NC}"
|
||
else
|
||
echo -e "${YELLOW}⚠️ Ollama оставлен запущенным${NC}"
|
||
fi
|
||
|
||
else
|
||
echo -e "${YELLOW}Остановка пользовательских сервисов...${NC}"
|
||
|
||
# Change to working directory
|
||
cd /opt/ai-server 2>/dev/null || {
|
||
echo -e "${RED}❌ Не найдена рабочая директория /opt/ai-server${NC}"
|
||
exit 1
|
||
}
|
||
|
||
# Stop web interface containers
|
||
echo "🌐 Остановка веб-интерфейса..."
|
||
if docker compose ps | grep -q "running"; then
|
||
docker compose down
|
||
echo -e "${GREEN}✅ Контейнеры остановлены${NC}"
|
||
else
|
||
echo -e "${YELLOW}⚠️ Контейнеры не были запущены${NC}"
|
||
fi
|
||
|
||
# Optional: Stop Ollama if requested
|
||
if systemctl is-active --quiet ollama; then
|
||
read -p "Остановить Ollama сервер? (y/N): " -n 1 -r
|
||
echo
|
||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||
echo "🤖 Остановка Ollama..."
|
||
sudo systemctl stop ollama
|
||
echo -e "${GREEN}✅ Ollama остановлен${NC}"
|
||
else
|
||
echo -e "${YELLOW}⚠️ Ollama оставлен запущенным${NC}"
|
||
fi
|
||
fi
|
||
fi
|
||
|
||
# Clean up unused Docker resources
|
||
echo "🧹 Очистка неиспользуемых ресурсов..."
|
||
docker system prune -f >/dev/null 2>&1 || true
|
||
|
||
# Show final status
|
||
echo ""
|
||
echo -e "${GREEN}✅ AI Server остановлен!${NC}"
|
||
echo ""
|
||
echo -e "${BLUE}📊 Текущий статус:${NC}"
|
||
|
||
# Check Ollama
|
||
if systemctl is-active --quiet ollama; then
|
||
echo " 🤖 Ollama: запущен"
|
||
else
|
||
echo " 🤖 Ollama: остановлен"
|
||
fi
|
||
|
||
# Check containers
|
||
cd /opt/ai-server 2>/dev/null || exit 0
|
||
if docker compose ps 2>/dev/null | grep -q "running"; then
|
||
echo " 🌐 Веб-интерфейс: запущен"
|
||
else
|
||
echo " 🌐 Веб-интерфейс: остановлен"
|
||
fi
|
||
|
||
echo ""
|
||
echo -e "${YELLOW}💡 Для запуска используйте: ai-start${NC}" |