domovoy_bot/ИСПРАВЛЕНО.md
Admin ba4676b0af v1.0 MVP - Инициализация проекта 🏠
 Регистрация и верификация жильцов
 Рейтинг активности (уровни)
 Детект шпионов (Score 0-100)
 Анти-мат система (3 предупреждения → бан)
 Админ-панель с рассылкой
 Учёт квартир (несколько жильцов)
 Телефоны экстренных служб и мастеров
 Еженедельный экспорт JSON
 Прокси (socks5) для обхода РКН

Бекап: backups/versions/v1.0_mvp_2026-02-26/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 10:54:16 +00:00

164 lines
4.1 KiB
Markdown
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.

# ✅ ПРОБЛЕМА РЕШЕНА!
## 🎯 Что было не так:
### Проблема №1: Два процесса бота
**Причина:** `run.sh` запускал бота в **foreground** (пока терминал открыт)
**Сценарий:**
1. Ты открыл терминал → запустил `./run.sh` → бот работает (PID 1)
2. Открыл **второе окно** терминала → запустил `./run.sh` снова → **второй бот** (PID 2)
3. Telegram получал запросы от двух ботов → ошибка `Conflict`
---
## ✅ Что исправлено:
### 1. `run.sh` — умный запуск
Теперь:
- Проверяет запущен ли бот (`pgrep`)
- Если запущен — **спрашивает** что делать
- Запускает в **фоне** (`nohup &`)
**Пример:**
```
⚠️ Бот уже запущен (PID: 922576)!
Выберите действие:
1) Остановить и перезапустить бота
2) Выйти (бот продолжит работать)
```
### 2. `start.sh` — жёсткий запуск
Теперь:
- **Убивает все процессы** (`pkill -9`)
- Запускает заново
**Используй для перезапуска после изменений**
### 3. `stop.sh` — остановка
- Находит процессы
- Останавливает корректно
---
## 🧪 Тесты:
### Проверка #1: Первый запуск
```bash
./run.sh
```
**Результат:** ✅ Бот запущен (PID: 922576)
### Проверка #2: Второй запуск
```bash
./run.sh
```
**Результат:** ⚠️ Бот уже запущен! (спрашивает что делать)
### Проверка #3: Проверка процессов
```bash
ps aux | grep "python.*main" | grep -v grep
```
**Результат:** Только **ОДИН** процесс!
### Проверка #4: Остановка
```bash
./stop.sh
```
**Результат:** ✅ Бот остановлен
### Проверка #5: Жёсткий запуск
```bash
./start.sh
```
**Результат:** ✅ Бот запущен (убил старый, запустил новый)
---
## 📊 Как теперь пользоваться:
### Обычный запуск:
```bash
cd /home/matrixhasyou/domovoy_bot
./run.sh
```
### Перезапуск после изменений:
```bash
./start.sh
```
### Остановка:
```bash
./stop.sh
```
### Проверка работы:
```bash
pgrep -f "python.*main.py"
# Если вернул PID — бот работает
```
### Просмотр логов:
```bash
tail -f logs/bot.log
```
---
## 💡 Почему теперь два бота не запустятся?
### В `run.sh`:
```bash
EXISTING_PID=$(pgrep -f "python.*main.py")
if [ -n "$EXISTING_PID" ]; then
# Бот уже запущен! Спрашиваем что делать.
fi
```
### Запуск в фоне:
```bash
nohup python main.py >> logs/bot.log 2>&1 &
```
**`nohup`** — работает после закрытия терминала
**`&`** — в фоне
**`pgrep`** — проверяет на дубликаты
---
## ✅ Итог:
| Проблема | Решение |
|----------|---------|
| Два процесса бота | `pgrep` проверка перед запуском |
| Бот останавливался при закрытии терминала | `nohup` — работает в фоне |
| Не понятно как остановить | `./stop.sh` — останавливает |
| Не видно PID | Показываем PID при запуске |
---
## 🎉 ТЕСТЬ ПРЯМО СЕЙЧАС:
1. **Останови бота:**
```bash
./stop.sh
```
2. **Запусти:**
```bash
./run.sh
```
3. **Напиши боту в Telegram:**
- В личку: `45`
- Или команду: `/start`
4. **Проверь логи:**
```bash
tail -f logs/bot.log
```
**Должно работать!** 🚀