✅ Регистрация и верификация жильцов ✅ Рейтинг активности (уровни) ✅ Детект шпионов (Score 0-100) ✅ Анти-мат система (3 предупреждения → бан) ✅ Админ-панель с рассылкой ✅ Учёт квартир (несколько жильцов) ✅ Телефоны экстренных служб и мастеров ✅ Еженедельный экспорт JSON ✅ Прокси (socks5) для обхода РКН Бекап: backups/versions/v1.0_mvp_2026-02-26/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
164 lines
4.1 KiB
Markdown
164 lines
4.1 KiB
Markdown
# ✅ ПРОБЛЕМА РЕШЕНА!
|
||
|
||
## 🎯 Что было не так:
|
||
|
||
### Проблема №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
|
||
```
|
||
|
||
**Должно работать!** 🚀
|