Valheim Руководство

Valheim теряет прогресс после перезапуска сервера: настройка SIGINT, прав доступа и пути к миру

Устранение потери прогресса на сервере Valheim после перезапуска: настройка KillSignal=SIGINT и TimeoutStopSec=120 в systemd, проверка прав доступа к каталогу worlds_local и совпадение имени мира.

Valheim теряет прогресс после перезапуска сервера: настройка SIGINT, прав доступа и пути к миру

Среди администраторов выделенных серверов Valheim распространена критическая проблема: игроки тратят часы на исследование биомов и возведение баз, но после перезагрузки VPS или планового перезапуска службы все постройки исчезают, а мир откатывается к начальному состоянию или на несколько дней назад.

В этом руководстве мы разберём механику сохранения миров в Valheim, устраним жёсткое завершение процесса сигналом SIGKILL, проверим права доступа к файлам .db и .fwl и убедимся в совпадении имени мира в скриптах запуска.

Почему сервер Valheim не сохраняет мир: разбор причин#

Потеря прогресса на сервере Valheim практически всегда вызвана одной из четырёх технических причин:

  1. Жёсткая остановка процесса (SIGKILL): Valheim выгружает структуры и объекты (zDO) из оперативной памяти на диск во время выключения. Если системный менеджер служб (systemd или Docker) прерывает процесс раньше, чем данные запишутся в файл, последние часы прогресса стираются.
  2. Ошибки прав доступа (Permissions): процесс сервера запускается под непривилегированным пользователем (например, steam), а директория сохранений принадлежит root.
  3. Несовпадение имени мира: если аргумент -world в скрипте запуска не совпадает с реальным именем файла с точностью до регистра букв, сервер генерирует абсолютно новый пустой мир.
  4. Нехватка дискового пространства: Valheim сначала пишет во временный файл, а затем переименовывает его в .db. При заполнении раздела на 100% запись обрывается.

Проверка прав доступа и структуры каталога сохранений#

По умолчанию сервер Valheim на Linux сохраняет данные в локальный каталог ~/.config/unity3d/IronGate/Valheim/worlds_local/.

Проверьте наличие файлов мира и их текущих владельцев:

bash
ls -la ~/.config/unity3d/IronGate/Valheim/worlds_local/

Если владельцем файлов или директории числится root, игровой сервер не может обновить состояние базы данных при автосохранении. Восстановите права владения для сервисного пользователя:

bash
sudo chown -R steam:steam ~/.config/unity3d/IronGate/Valheim
sudo chmod -R 755 ~/.config/unity3d/IronGate/Valheim

Настройка корректного завершения процесса через SIGINT#

Стандартная конфигурация systemd посылает процессу сигнал SIGTERM и принудительно убивает его через 10–15 секунд по тайм-ауту. Серверу Valheim с развитой картой и тысячами объектов требуется до 60–90 секунд для полной синхронизации дискового кэша.

Откройте юнит службы /etc/systemd/system/valheim.service и задайте безопасный сигнал остановки:

ini
[Unit]
Description=Valheim Dedicated Server
After=network.target

[Service]
Type=simple
User=steam
Group=steam
ExecStart=/opt/valheim/start_server.sh
KillSignal=SIGINT
TimeoutStopSec=120
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Параметр KillSignal=SIGINT передаёт игровому движку Unity команду на штатную процедуру сохранения мира, а TimeoutStopSec=120 гарантирует, что система выделит серверу 2 минуты на завершение записи файлов.

Примените обновлённую конфигурацию systemd:

bash
sudo systemctl daemon-reload && sudo systemctl restart valheim

Проверка имени мира и аудит лога Player.log#

Проверьте строку запуска в файле start_server.sh:

bash
grep -E "valheim_server|-world" /opt/valheim/start_server.sh

Убедитесь, что аргумент -world "Dedicated" в точности соответствует именам файлов Dedicated.db и Dedicated.fwl в папке worlds_local/ (в Linux регистр символов имеет значение: dedicated и Dedicated — это два разных файла).

Для подтверждения успешного сохранения проверьте системный журнал сервера:

bash
tail -n 50 ~/.config/unity3d/IronGate/Valheim/Player.log | grep -i "world saved"

Строка вида World saved ( 842.12ms ) подтверждает, что автосохранение работает штатно, а прогресс базы надёжно зафиксирован на диске.

Если вам нужен надёжный сервер Valheim с гарантированным сохранением прогресса, автоматическими бэкапами перед каждым перезапуском и удобным веб-управлением, современный хостинг серверов Valheim берёт на себя всю техническую настройку и мониторинг целостности ваших миров.

Источники#