Files
czech-fool/SYSTEMD_SETUP.md
2025-11-01 15:55:11 +03:00

3.5 KiB

Настройка systemd service для игры

Установка service

1. Скопируйте файл service

sudo cp /opt/czech-fool/czech-fool.service /etc/systemd/system/

2. Перезагрузите systemd

sudo systemctl daemon-reload

3. Включите автозапуск

sudo systemctl enable czech-fool

4. Запустите сервис

sudo systemctl start czech-fool

Управление сервисом

Проверка статуса

sudo systemctl status czech-fool

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

sudo journalctl -u czech-fool -f

Просмотр последних 100 строк логов

sudo journalctl -u czech-fool -n 100

Перезапуск (с очисткой комнат)

sudo systemctl restart czech-fool

Остановка

sudo systemctl stop czech-fool

Отключение автозапуска

sudo systemctl disable czech-fool

Флаг --clearrooms

Флаг --clearrooms в файле service:

ExecStart=/usr/bin/python3 /opt/czech-fool/server.py --clearrooms

Что делает:

  • Удаляет ВСЕ комнаты из базы данных при запуске
  • Очищает зависшие комнаты с отключенными игроками
  • Начинает с чистого листа

Когда использовать:

  • При рестарте сервера
  • После обновления кода
  • Для очистки зависших комнат

Без флага:

Если убрать --clearrooms из ExecStart:

ExecStart=/usr/bin/python3 /opt/czech-fool/server.py
  • Загружает существующие комнаты из БД
  • Удаляет только старые (>24 часов)
  • Игроки могут продолжить игру после рестарта

Редактирование service

sudo systemctl edit --full czech-fool

После изменений:

sudo systemctl daemon-reload
sudo systemctl restart czech-fool

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

1. Проверьте что сервис запущен

sudo systemctl is-active czech-fool
# Должно вывести: active

2. Проверьте логи запуска

sudo journalctl -u czech-fool -n 50

Должны увидеть:

Starting with --clearrooms flag: all rooms will be deleted
Connecting to PostgreSQL...
PostgreSQL connected successfully!
Clearing all rooms from database...
Deleted X rooms from database
WebSocket server started on ws://0.0.0.0:8765
HTTP server started on http://0.0.0.0:8080

3. Проверьте порты

sudo netstat -tulpn | grep python3

Должны быть открыты:

  • 0.0.0.0:8765 (WebSocket)
  • 0.0.0.0:8080 (HTTP)

Troubleshooting

Сервис не запускается

sudo journalctl -u czech-fool -n 100

Ошибка подключения к PostgreSQL

Проверьте что PostgreSQL запущен:

sudo systemctl status postgresql

Ошибка прав доступа

Убедитесь что ваш пользователь может читать файлы:

ls -la /opt/czech-fool/server.py

Порты заняты

Проверьте что порты 8765 и 8080 свободны:

sudo lsof -i :8765
sudo lsof -i :8080