Исправить несохранение мира во время выполнения CD для серверов игры #395

Closed
opened 2026-04-22 18:42:00 +00:00 by cuqmbr · 4 comments
Owner

Введение. Мы используем Ansible для развёртывания программ "обвязки" и контейнеров игровых серверов. Чтобы обновить сервер игры, нужно перезапустить демон панели MCSManager.

Проблема. При выкличении сервера во время перезапуска данные (мир, стата, инвентари, ...) не сохраняются.

Возможное решение. Дбавить периодическое сохранение, когда сервер запущен.

Введение. Мы используем Ansible для развёртывания программ "обвязки" и контейнеров игровых серверов. Чтобы обновить сервер игры, нужно перезапустить демон панели MCSManager. Проблема. При выкличении сервера во время перезапуска данные (мир, стата, инвентари, ...) не сохраняются. Возможное решение. Дбавить периодическое сохранение, когда сервер запущен.
cuqmbr added this to the Сезон 2 project 2026-04-22 18:42:00 +00:00
Author
Owner
https://github.com/MCSManager/MCSManager/issues/1003 https://github.com/MCSManager/MCSManager/issues/1666
Author
Owner

Тесты в созданной с помощью сценария molecule среде: bebrashield/infra@49928c12eb/ansible/molecule/mcsmanager_web_daemon_instance

Тег докер контейнера демона и веб: 10.12.2
Версия демона, отображаемая в панели: 4.12.1

Логи сервера при обычной остановке через веб интерфейс кнопкой "Stop":

[INFO] Preparing to start...
[INFO] The following ports have been opened for the instance:
[INFO] External access port: 25565 -> Internal container port: 25565 / Protocol: tcp
[INFO] The instance has been started...
useradd warning: worker's uid 999 outside of the UID_MIN 1000 and UID_MAX 60000 range.
08:19:42.677 INFO  Limbo -- Starting server...
08:19:44.469 INFO  Limbo -- Server started on /0.0.0.0:25565

[INFO] Stop command has been executed: 
stop
If you are unable to stop the instance, please go to the instance settings and change the correct command for stopping the instance, such as 'exit,' 'stop,' 'end,' etc.
stop
08:19:52.247 INFO  Limbo -- Stopping server...
08:19:52.252 INFO  Limbo -- Server stopped, Goodbye!
[INFO] The instance has been stopped.

Логи сервера при принудительной остановке через веб интерфейс кнопкой "Kill":

INFO] Preparing to start...
[INFO] The following ports have been opened for the instance:
[INFO] External access port: 25565 -> Internal container port: 25565 / Protocol: tcp
[INFO] The instance has been started...
useradd warning: worker's uid 999 outside of the UID_MIN 1000 and UID_MAX 60000 range.
08:21:38.208 INFO  Limbo -- Starting server...
08:21:40.148 INFO  Limbo -- Server started on /0.0.0.0:25565
[INFO] The instance has been stopped.

Логи сервера при остановке systemd сервиса mcsm-daemon-docker командой systemctl stop mcsm-daemon-docker:

[INFO] Preparing to start...
[INFO] The following ports have been opened for the instance:
[INFO] External access port: 25565 -> Internal container port: 25565 / Protocol: tcp
[INFO] The instance has been started...
useradd warning: worker's uid 999 outside of the UID_MIN 1000 and UID_MAX 60000 range.
08:25:58.796 INFO  Limbo -- Starting server...
08:26:00.579 INFO  Limbo -- Server started on /0.0.0.0:25565
[INFO] The instance has been stopped.

Логи systemd сервиса при остановке:

systemd[1]: Stopping mcsm-daemon-docker.service - MCSManager Daemon Docker container...
docker[4645]: [05/01 08:26:07] [WARN] Received SIGTERM signal from the system, attempting to shut down all instances...
docker[4645]: [05/01 08:26:07] [INFO] Force stopping test (test)...
docker[4645]: [05/01 08:26:08] [INFO] All instances have been shut down, exiting program...
docker[4645]: [05/01 08:26:08] [INFO] Program has exited!
systemd[1]: mcsm-daemon-docker.service: Deactivated successfully.
systemd[1]: Stopped mcsm-daemon-docker.service - MCSManager Daemon Docker container.
Тесты в созданной с помощью сценария molecule среде: https://git.cuqmbr.xyz/bebrashield/infra/src/commit/49928c12eb894bc3a1afae7b1c254ee4f43c9f4a/ansible/molecule/mcsmanager_web_daemon_instance Тег докер контейнера демона и веб: 10.12.2 Версия демона, отображаемая в панели: 4.12.1 Логи сервера при обычной остановке через веб интерфейс кнопкой "Stop": ``` [INFO] Preparing to start... [INFO] The following ports have been opened for the instance: [INFO] External access port: 25565 -> Internal container port: 25565 / Protocol: tcp [INFO] The instance has been started... useradd warning: worker's uid 999 outside of the UID_MIN 1000 and UID_MAX 60000 range. 08:19:42.677 INFO Limbo -- Starting server... 08:19:44.469 INFO Limbo -- Server started on /0.0.0.0:25565 [INFO] Stop command has been executed: stop If you are unable to stop the instance, please go to the instance settings and change the correct command for stopping the instance, such as 'exit,' 'stop,' 'end,' etc. stop 08:19:52.247 INFO Limbo -- Stopping server... 08:19:52.252 INFO Limbo -- Server stopped, Goodbye! [INFO] The instance has been stopped. ``` Логи сервера при принудительной остановке через веб интерфейс кнопкой "Kill": ``` INFO] Preparing to start... [INFO] The following ports have been opened for the instance: [INFO] External access port: 25565 -> Internal container port: 25565 / Protocol: tcp [INFO] The instance has been started... useradd warning: worker's uid 999 outside of the UID_MIN 1000 and UID_MAX 60000 range. 08:21:38.208 INFO Limbo -- Starting server... 08:21:40.148 INFO Limbo -- Server started on /0.0.0.0:25565 [INFO] The instance has been stopped. ``` Логи сервера при остановке systemd сервиса mcsm-daemon-docker командой `systemctl stop mcsm-daemon-docker`: ``` [INFO] Preparing to start... [INFO] The following ports have been opened for the instance: [INFO] External access port: 25565 -> Internal container port: 25565 / Protocol: tcp [INFO] The instance has been started... useradd warning: worker's uid 999 outside of the UID_MIN 1000 and UID_MAX 60000 range. 08:25:58.796 INFO Limbo -- Starting server... 08:26:00.579 INFO Limbo -- Server started on /0.0.0.0:25565 [INFO] The instance has been stopped. ``` Логи systemd сервиса при остановке: ``` systemd[1]: Stopping mcsm-daemon-docker.service - MCSManager Daemon Docker container... docker[4645]: [05/01 08:26:07] [WARN] Received SIGTERM signal from the system, attempting to shut down all instances... docker[4645]: [05/01 08:26:07] [INFO] Force stopping test (test)... docker[4645]: [05/01 08:26:08] [INFO] All instances have been shut down, exiting program... docker[4645]: [05/01 08:26:08] [INFO] Program has exited! systemd[1]: mcsm-daemon-docker.service: Deactivated successfully. systemd[1]: Stopped mcsm-daemon-docker.service - MCSManager Daemon Docker container. ```
Author
Owner
В версии 10.13.0 было добавлено "мягкое выключение": - https://github.com/MCSManager/MCSManager/compare/v10.12.2...v10.13.0#diff-dac1443a0335c9b47b292615c05fdb8e35b92cc9419873a72be5ca1ab938486bR42 - https://github.com/MCSManager/MCSManager/compare/v10.12.2...v10.13.0#diff-c72057f94db9131eb95dca7e7fd37086e473924c4c82c6cc1968790db4d872fbR203
Author
Owner
https://github.com/MCSManager/MCSManager/issues/2131
Sign in to join this conversation.
No description provided.