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

4.1 KiB
Raw Permalink Blame History

ПРОБЛЕМА РЕШЕНА!

🎯 Что было не так:

Проблема №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: Первый запуск

./run.sh

Результат: Бот запущен (PID: 922576)

Проверка #2: Второй запуск

./run.sh

Результат: ⚠️ Бот уже запущен! (спрашивает что делать)

Проверка #3: Проверка процессов

ps aux | grep "python.*main" | grep -v grep

Результат: Только ОДИН процесс!

Проверка #4: Остановка

./stop.sh

Результат: Бот остановлен

Проверка #5: Жёсткий запуск

./start.sh

Результат: Бот запущен (убил старый, запустил новый)


📊 Как теперь пользоваться:

Обычный запуск:

cd /home/matrixhasyou/domovoy_bot
./run.sh

Перезапуск после изменений:

./start.sh

Остановка:

./stop.sh

Проверка работы:

pgrep -f "python.*main.py"
# Если вернул PID — бот работает

Просмотр логов:

tail -f logs/bot.log

💡 Почему теперь два бота не запустятся?

В run.sh:

EXISTING_PID=$(pgrep -f "python.*main.py")

if [ -n "$EXISTING_PID" ]; then
    # Бот уже запущен! Спрашиваем что делать.
fi

Запуск в фоне:

nohup python main.py >> logs/bot.log 2>&1 &

nohup — работает после закрытия терминала
& — в фоне
pgrep — проверяет на дубликаты


Итог:

Проблема Решение
Два процесса бота pgrep проверка перед запуском
Бот останавливался при закрытии терминала nohup — работает в фоне
Не понятно как остановить ./stop.sh — останавливает
Не видно PID Показываем PID при запуске

🎉 ТЕСТЬ ПРЯМО СЕЙЧАС:

  1. Останови бота:

    ./stop.sh
    
  2. Запусти:

    ./run.sh
    
  3. Напиши боту в Telegram:

    • В личку: 45
    • Или команду: /start
  4. Проверь логи:

    tail -f logs/bot.log
    

Должно работать! 🚀