Project Zomboid сървърите могат да се сриват или да не се стартират по няколко добре известни причини. Това ръководство покрива най-честите причини, наблюдавани при тикетите за поддръжка на Legion Hosting — от бъг с паметта в Build 42, който изисква допълнителна RAM при стартиране, до препълване на резервни копия, което запълва /tmp, до повредени конфигурационни файлове. Преминете през секциите по-долу по ред.
Преди да започнете — Намерете логовете за сривове
Почти всеки срив на Project Zomboid оставя следи на едно от две места. Проверете и двете, преди да опитате каквато и да е поправка, за да знаете коя секция от това ръководство се отнася за вас.
Изход на конзолата на GPanel
- Влезте в GPanel.
- Изберете вашия Project Zomboid сървър от списъка със сървъри.
- Кликнете върху раздела Console.
- Превъртете до дъното на изхода. Потърсете редове, маркирани с
ERROR,FATAL,OutOfMemoryErrorилиException. Последните 20–30 реда преди сървърът да спре обикновено са най-важни. - Ако конзолата е празна, процесът на сървъра е приключил, преди да успее да напише нещо — това само по себе си е улика (вижте секцията за паметта на B42 по-долу).
Файлът debug.log на сървъра
Project Zomboid записва подробен лог в debug.log в директорията с данни на сървъра. Този файл често съдържа пълен Java stack trace, който сочи директно към причината за срива.
- В GPanel отидете в раздела File Manager.
- Навигирайте до
/.cache/Logs/. Ще видите файлове, наречени напр.debug.log,DebugLog-server.txtили датирани лог файлове. - Отворете най-новия лог файл. Използвайте Ctrl+End или превъртете до самото дъно и четете нагоре оттам.
- Потърсете ключовите думи
OutOfMemoryError,IOException,NullPointerExceptionилиSandboxVars. Копирайте съответните редове — ще ви трябват, ако отворите билет за поддръжка.
Поправка 1 — Високо използване на памет при стартиране на Build 42 (Известен бъг в играта)
Ако сървърът ви излиза веднага при стартиране без грешка в конзолата или конзолата показва OutOfMemoryError или Java heap space грешка, сървърът свършва паметта си преди светът да завърши зареждането.
Симптоми
- Сървърът се стартира, конзолата превърта няколко секунди, след което спира без видима за играча грешка.
- Конзолата показва
java.lang.OutOfMemoryError: Java heap spaceилиGC overhead limit exceeded. - Сървърът работи при някои рестартирания, но не при други (наличната памет варира).
- Сървърът е работил добре на B41, но се срива постоянно след надграждане до B42.
Стъпки
- В GPanel кликнете върху сървъра си и отидете в раздела Console. Отбележете текущото разпределение на RAM на сървъра, показано в лентата за ресурси или информационния панел на сървъра.
- Ако вашият план включва по-малко от 10 GB RAM, сървърът може да се срине по време на стартиране, тъй като B42 изисква приблизително 9 GB за инициализация. Ще трябва да надградите плана си или да изчакате The Indie Stone да издаде поправка.
- Ако планът ви вече има 10 GB или повече и сървърът все още се срива при стартиране, отидете в раздела Startup в GPanel.
- Потърсете поле, наречено Java Memory, Max RAM или Xmx. Уверете се, че е зададено на не повече от 80–85% от общата налична RAM. Например при план с 12 GB задайте това на
10240(10 GB в мегабайти). Не задавайте равно или над общата RAM — операционната система и други процеси също се нуждаят от памет. - Кликнете Save в раздела Startup, след това рестартирайте сървъра.
- Наблюдавайте конзолата по време на стартиране. Ако сървърът достигне реда
SERVER STARTEDилиLuaManager: Loading lua files...завърши без срив, разпределението на паметта вече е достатъчно.
Поправка 2 — BackupsOnStart препълва /tmp (Срив при стартиране)
Project Zomboid може да бъде конфигуриран да създава пълно резервно копие на света всеки път, когато сървърът се стартира. Когато това резервно копие се записва в /tmp — който е ограничен по размер на повечето Linux хостове — сървърът се срива по средата на стартиране с грешка при запис на диска, когато /tmp се запълни.
Симптоми
- Сървърът се срива надеждно при всяко рестартиране, но е работил преди това.
- Конзолата или
debug.logсъдържа грешки катоIOException: No space left on deviceили споменава запис в/tmp/. - Сривовете обикновено стават по-лоши с течение на времето, когато запазеното състояние на света става все по-голямо.
- Сървърът понякога се стартира, ако опитате скоро след чисто рестартиране на хост възела (преди
/tmpда се запълни отново).
Стъпки — Деактивирайте BackupsOnStart
- В GPanel отидете в раздела File Manager.
- Навигирайте до
/.cache/server/. Потърсете файла за конфигурация на сървъра — обикновено се наричаservertest.iniили както е името на вашия сървър, последвано от.ini(напр.MyServer.ini). - Отворете файла
.iniза редактиране. - Използвайте функцията за намиране на браузъра (Ctrl+F), за да търсите
BackupsOnStart. - Променете стойността от
trueнаfalse:BackupsOnStart=false - Докато сте във файла, проверете и настройката
BackupsOnVersionChangeи я задайте наfalse, ако дисковото пространство е проблем:BackupsOnVersionChange=false - Запазете файла и рестартирайте сървъра. Наблюдавайте конзолата, за да потвърдите, че сървърът достига реда
SERVER STARTED.
/.cache/saves/multiplayer/ периодично, или се свържете с поддръжката на Legion Hosting, за да попитате за опции за планирани резервни копия във вашия план.
Поправка 3 — Повреден SandboxVars.lua или конфигурация на сървъра
Project Zomboid съхранява настройките на света в Lua файл, наречен SandboxVars.lua. Ако този файл бъде редактиран ръчно и запазен със синтактична грешка или ако файловият трансфер е бил прекъснат, сървърът ще се срине веднага при стартиране, когато се опита да парсне файла.
Симптоми
- Конзолата показва
ERROR: SandboxVars,LuaManager errorили Lua parse грешка с номер на ред. - Сривът започна да се случва веднага след като сте редактирали настройки във файла
.iniили директно вSandboxVars.lua. - Сървърът може да показва
Bad argument #1 toили подобни Lua runtime грешки.
Стъпки — Проверка и поправка на SandboxVars.lua
- В GPanel отидете в File Manager и навигирайте до
/.cache/saves/multiplayer/<YourServerName>/. - Отворете
SandboxVars.luaза редактиране. - Проверете дали файлът започва с
VERSION = 1,(или подобно) вътре в блокSandboxVars = {и завършва със затваряща}. Всяка липсваща запетая, незатворена скоба или излишен символ ще доведе до неуспех при парсинг. - Ако не можете да идентифицирате грешката, най-безопасната поправка е да изтриете
SandboxVars.luaизцяло. Сървърът ще го регенерира със стойности по подразбиране при следващото стартиране. Забележка: това нулира настройките на sandbox-а ви (лут, брой зомбита и т.н.) до стойностите по подразбиране — данните на картата и данните на играчите не са засегнати. - Проверете и файла
.iniв/.cache/server/за подобни проблеми, ако наскоро сте го редактирали ръчно. Уверете се, че всеки ред следва форматаKey=Valueбез празни редове в стойност. - Запазете промените и рестартирайте сървъра.
SandboxVars.lua. Вместо това използвайте админ панела в играта или потребителския интерфейс за настройки на сървъра в GPanel, ако е наличен. Директните редакции са склонни към грешки и могат да повредят сървъра с една пропусната запетая.
Поправка 4 — Празна админ парола, причиняваща срив
Project Zomboid изисква непразна админ парола, за да стартира мултиплейър сървър. Ако полето за парола е празно, процесът на сървъра излиза веднага след опита за инициализиране на админ акаунта.
Симптоми
- Чисто нов сървър или наскоро нулиран сървър се проваля при всеки опит за стартиране.
- Изходът на конзолата е много кратък — сървърът отпечатва няколко реда за инициализация и след това спира.
debug.logможе да съдържа препратка към админ акаунта или валидирането на парола.
Стъпки
- В GPanel кликнете върху сървъра си и отидете в раздела Startup.
- Потърсете поле, наречено Admin Password или RCON Password. Уверете се, че съдържа стойност — не трябва да е празно.
- Ако полето е празно, въведете парола. Използвайте поне 8 символа. Избягвайте специални символи като
!,#,$или@в админ паролата, тъй като някои PZ версии не успяват да ги парсват правилно в startup аргументите. - Кликнете Save и рестартирайте сървъра.
- Като вторична проверка отворете файла
.iniв/.cache/server/и потвърдете, че редътAdminPassword=има стойност след знака за равенство.
Поправка 5 — Нулиране на света (Последна мярка за постоянни сривове)
Ако запазен свят се повреди — например след тежък срив на сървъра, неуспешна актуализация или грешки на файловата система — самите данни на запазването може да са невъзстановими. В този случай изтриването на света и започването на нов е единствената опция.
Стъпки
- Спрете сървъра си в GPanel преди да правите промени във файловете за запазване. Редактирането на файлове на работещ сървър може да причини допълнителна повреда.
- В GPanel отидете в раздела File Manager.
- Навигирайте до
/.cache/saves/multiplayer/. - Ще видите една или повече папки с името на сървъра ви (напр.
servertest). Преди изтриване, по желание изтеглете папката като резервно копие, като я изберете и използвате опцията за изтегляне — дори повредено запазване може да бъде частично възстановимо по-късно. - Изтрийте папката, съответстваща на името на сървъра ви в
Multiplayer/. Не изтривайте самата папкаMultiplayer. - Навигирайте също до
/.cache/db/и изтрийте файла<YourServerName>.db. Тази база данни съдържа статистика на играчите и може да препраща към стария свят — регенерирането й избягва несъответствия. - Стартирайте сървъра си. Той ще генерира нов свят, използвайки настройките във вашия
.iniфайл.
.ini файл, админ паролата, списъкът с модове и настройките на портовете са запазени. Следващото стартиране ще използва точно същите настройки за генериране на нов свят.
Бърза диагностична справка
| Какво виждате в лога | Най-вероятна причина | Поправка |
|---|---|---|
OutOfMemoryError или Java heap space |
Недостатъчно RAM за стартиране на B42 | Поправка 1 — Бъг с паметта в B42 |
IOException: No space left on device |
BackupsOnStart запълва /tmp |
Поправка 2 — BackupsOnStart |
SandboxVars грешка или Lua parse грешка |
Повреден или ръчно редактиран конфигурационен файл | Поправка 3 — SandboxVars.lua |
| Сървърът излиза веднага, много кратък изход на конзолата | Празна админ парола | Поправка 4 — Админ парола |
| Сривове постоянно, независимо от промените в конфигурацията | Повреден запазен свят | Поправка 5 — Нулиране на света |
Все още има сривове след всички стъпки?
Ако сървърът ви все още се срива след преминаване през всички поправки по-горе, отворете билет за поддръжка с Legion Hosting. Включете следното, за да помогнете на екипа за поддръжка да диагностицира проблема бързо:
- Последните 50 реда от изхода на конзолата на GPanel в момента на срива
- Пълното съдържание на най-новия
debug.logилиDebugLog-server.txtфайл - Версията на Build на Project Zomboid на сървъра ви (показана в конзолата при стартиране, напр.
Build 42.x.x) - Вашето разпределение на RAM, както е показано в GPanel
- Дали сривът е при всяко стартиране или само след като сървърът е работил известно време
- Всички промени, които сте направили преди да започнат сривовете (добавяне на модове, редактиране на конфигурация, актуализации на играта)
Отворете билет за поддръжка и включете ID на сървъра си и съобщенията за грешка от конзолата на GPanel.