3.5 KiB
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