Οι διακομιστές Project Zomboid μπορούν να κρασάρουν ή να αποτύχουν να ξεκινήσουν για διάφορους γνωστούς λόγους. Αυτός ο οδηγός καλύπτει τις πιο συνηθισμένες αιτίες που παρατηρούνται στα tickets υποστήριξης της Legion Hosting — από ένα bug μνήμης του Build 42 που απαιτεί επιπλέον RAM κατά την εκκίνηση, έως μια υπερχείλιση αντιγράφων ασφαλείας που γεμίζει το /tmp, έως κατεστραμμένα αρχεία διαμόρφωσης. Διαβάστε τις παρακάτω ενότητες με τη σειρά.
Πριν Ξεκινήσετε — Εντοπίστε τα Crash Logs σας
Σχεδόν κάθε κρασάρισμα του Project Zomboid αφήνει ίχνη σε ένα από δύο μέρη. Ελέγξτε και τα δύο πριν επιχειρήσετε οποιαδήποτε διόρθωση, ώστε να γνωρίζετε ποια ενότητα αυτού του οδηγού ισχύει για εσάς.
Έξοδος Κονσόλας GPanel
- Συνδεθείτε στο GPanel.
- Επιλέξτε τον διακομιστή σας Project Zomboid από τη λίστα διακομιστών.
- Κάντε κλικ στην καρτέλα Console.
- Κάντε scroll στο κάτω μέρος της εξόδου. Αναζητήστε γραμμές που σημειώνονται ως
ERROR,FATAL,OutOfMemoryErrorήException. Οι τελευταίες 20–30 γραμμές πριν σταματήσει ο διακομιστής είναι συνήθως οι πιο σχετικές. - Εάν η κονσόλα είναι κενή, η διεργασία του διακομιστή τερματίστηκε πριν προλάβει να γράψει οτιδήποτε — αυτό από μόνο του είναι μια ένδειξη (δείτε την ενότητα μνήμης B42 παρακάτω).
Το Αρχείο debug.log του Διακομιστή
Το Project Zomboid γράφει ένα λεπτομερές log στο debug.log στον κατάλογο δεδομένων του διακομιστή. Αυτό το αρχείο συχνά περιέχει ένα πλήρες Java stack trace που υποδεικνύει απευθείας την αιτία του κρασαρίσματος.
- Στο GPanel, μεταβείτε στην καρτέλα File Manager.
- Πλοηγηθείτε στο
/.cache/Logs/. Θα δείτε αρχεία με ονόματα όπωςdebug.log,DebugLog-server.txtή χρονολογημένα αρχεία log. - Ανοίξτε το πιο πρόσφατο αρχείο log. Χρησιμοποιήστε Ctrl+End ή κάντε scroll μέχρι το κάτω μέρος και διαβάστε προς τα πάνω από εκεί.
- Αναζητήστε τις λέξεις-κλειδιά
OutOfMemoryError,IOException,NullPointerExceptionήSandboxVars. Αντιγράψτε τις σχετικές γραμμές — θα τις χρειαστείτε εάν ανοίξετε ένα ticket υποστήριξης.
Διόρθωση 1 — Υψηλή Χρήση Μνήμης του Build 42 κατά την Εκκίνηση (Γνωστό Bug Παιχνιδιού)
Εάν ο διακομιστής σας τερματίζεται αμέσως κατά την εκκίνηση χωρίς σφάλμα στην κονσόλα, ή η κονσόλα εμφανίζει OutOfMemoryError ή ένα σφάλμα Java heap space, ο διακομιστής εξαντλεί τη μνήμη πριν ολοκληρωθεί η φόρτωση του κόσμου.
Συμπτώματα
- Ο διακομιστής ξεκινάει, η κονσόλα κάνει scroll για μερικά δευτερόλεπτα, στη συνέχεια σταματάει χωρίς σφάλμα ορατό στον παίκτη.
- Η κονσόλα εμφανίζει
java.lang.OutOfMemoryError: Java heap spaceήGC overhead limit exceeded. - Ο διακομιστής λειτουργεί σε ορισμένες επανεκκινήσεις αλλά όχι σε άλλες (η διαθεσιμότητα μνήμης ποικίλλει).
- Ο διακομιστής λειτουργούσε σωστά στο B41 αλλά κρασάρει σταθερά μετά την αναβάθμιση στο B42.
Βήματα
- Στο GPanel, κάντε κλικ στον διακομιστή σας και μεταβείτε στην καρτέλα Console. Σημειώστε την τρέχουσα δέσμευση RAM του διακομιστή σας που εμφανίζεται στη γραμμή πόρων ή στο πάνελ πληροφοριών διακομιστή.
- Εάν το πλάνο σας περιλαμβάνει λιγότερα από 10 GB RAM, ο διακομιστής μπορεί να κρασάρει κατά την εκκίνηση επειδή το B42 απαιτεί περίπου 9 GB για την αρχικοποίηση. Θα χρειαστεί να αναβαθμίσετε το πλάνο σας ή να περιμένετε την Indie Stone να κυκλοφορήσει μια διόρθωση.
- Εάν το πλάνο σας έχει ήδη 10 GB ή περισσότερα και ο διακομιστής εξακολουθεί να κρασάρει κατά την εκκίνηση, μεταβείτε στην καρτέλα Startup στο GPanel.
- Αναζητήστε ένα πεδίο με την ετικέτα Java Memory, Max RAM ή Xmx. Επιβεβαιώστε ότι είναι ορισμένο σε όχι περισσότερο από 80–85% της συνολικής διαθέσιμης RAM σας. Για παράδειγμα, σε ένα πλάνο 12 GB, ορίστε το σε
10240(10 GB σε megabytes). Μην το ορίσετε ίσο ή υψηλότερο από τη συνολική σας RAM — το λειτουργικό σύστημα και άλλες διεργασίες χρειάζονται επίσης μνήμη. - Κάντε κλικ στο Save στην καρτέλα Startup, στη συνέχεια επανεκκινήστε τον διακομιστή σας.
- Παρακολουθήστε την κονσόλα κατά την εκκίνηση. Εάν ο διακομιστής φτάσει τη γραμμή
SERVER STARTEDή ολοκληρωθεί τοLuaManager: Loading lua files...χωρίς να κρασάρει, η δέσμευση μνήμης είναι πλέον επαρκής.
Διόρθωση 2 — Το BackupsOnStart Υπερχειλίζει το /tmp (Κρασάρισμα Εκκίνησης)
Το Project Zomboid μπορεί να διαμορφωθεί ώστε να δημιουργεί ένα πλήρες αντίγραφο ασφαλείας του κόσμου κάθε φορά που ξεκινάει ο διακομιστής. Όταν αυτό το αντίγραφο ασφαλείας γράφεται στο /tmp — το οποίο έχει περιορισμένο μέγεθος στους περισσότερους Linux hosts — ο διακομιστής κρασάρει στη μέση της εκκίνησης με ένα σφάλμα εγγραφής δίσκου μόλις γεμίσει το /tmp.
Συμπτώματα
- Ο διακομιστής κρασάρει αξιόπιστα σε κάθε επανεκκίνηση, αλλά λειτουργούσε προηγουμένως.
- Η κονσόλα ή το
debug.logπεριέχει σφάλματα όπωςIOException: No space left on deviceή αναφέρει εγγραφή στο/tmp/. - Τα κρασαρίσματα τείνουν να επιδεινώνονται με την πάροδο του χρόνου καθώς το αρχείο αποθήκευσης του κόσμου μεγαλώνει.
- Ο διακομιστής μερικές φορές ξεκινάει εάν προσπαθήσετε λίγο μετά από μια καθαρή επανεκκίνηση του host node (πριν γεμίσει ξανά το
/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 με αριθμό γραμμής. - Το κρασάρισμα ξεκίνησε αμέσως μετά την επεξεργασία ρυθμίσεων στο αρχείο
.iniή απευθείας στοSandboxVars.lua. - Ο διακομιστής μπορεί να εμφανίζει
Bad argument #1 toή παρόμοια σφάλματα χρόνου εκτέλεσης Lua.
Βήματα — Έλεγχος και Επιδιόρθωση του SandboxVars.lua
- Στο GPanel, μεταβείτε στον File Manager και πλοηγηθείτε στο
/.cache/saves/multiplayer/<YourServerName>/. - Ανοίξτε το
SandboxVars.luaγια επεξεργασία. - Ελέγξτε ότι το αρχείο ξεκινάει με
VERSION = 1,(ή παρόμοιο) μέσα σε ένα μπλοκSandboxVars = {και τελειώνει με ένα κλείσιμο}. Οποιοδήποτε κόμμα που λείπει, μη κλεισμένη αγκύλη ή αδέσποτος χαρακτήρας θα προκαλέσει αποτυχία ανάλυσης. - Εάν δεν μπορείτε να εντοπίσετε το σφάλμα, η ασφαλέστερη λύση είναι να διαγράψετε εντελώς το
SandboxVars.lua. Ο διακομιστής θα το αναγεννήσει με προεπιλεγμένες τιμές κατά την επόμενη εκκίνηση. Σημείωση: αυτό επαναφέρει τις ρυθμίσεις sandbox σας (loot, αριθμός zombie, κ.λπ.) στις προεπιλογές — τα δεδομένα χάρτη και τα δεδομένα παικτών σας δεν επηρεάζονται. - Ελέγξτε επίσης το αρχείο
.iniστο/.cache/server/για παρόμοια ζητήματα εάν το επεξεργαστήκατε πρόσφατα με το χέρι. Βεβαιωθείτε ότι κάθε γραμμή ακολουθεί τη μορφήKey=Valueχωρίς κενές γραμμές μέσα σε μια τιμή. - Αποθηκεύστε τις αλλαγές και επανεκκινήστε τον διακομιστή.
SandboxVars.lua. Αντ' αυτού, χρησιμοποιήστε το in-game admin panel ή το UI ρυθμίσεων διακομιστή στο GPanel εάν είναι διαθέσιμο. Οι απευθείας επεξεργασίες είναι επιρρεπείς σε σφάλματα και μπορούν να χαλάσουν τον διακομιστή με ένα μόνο κόμμα που λείπει.
Διόρθωση 4 — Κενός Κωδικός Πρόσβασης Admin Προκαλεί Κρασάρισμα
Το Project Zomboid απαιτεί έναν μη κενό κωδικό πρόσβασης admin για να ξεκινήσει έναν διακομιστή multiplayer. Εάν το πεδίο κωδικού πρόσβασης είναι κενό, η διεργασία του διακομιστή τερματίζεται αμέσως μετά την προσπάθεια αρχικοποίησης του λογαριασμού admin.
Συμπτώματα
- Ένας ολοκαίνουργιος διακομιστής ή ένας πρόσφατα επαναφερμένος διακομιστής αποτυγχάνει σε κάθε προσπάθεια εκκίνησης.
- Η έξοδος της κονσόλας είναι πολύ σύντομη — ο διακομιστής εκτυπώνει μερικές γραμμές αρχικοποίησης και στη συνέχεια σταματάει.
- Το
debug.logμπορεί να περιέχει αναφορά στον λογαριασμό admin ή στην επικύρωση κωδικού πρόσβασης.
Βήματα
- Στο GPanel, κάντε κλικ στον διακομιστή σας και μεταβείτε στην καρτέλα Startup.
- Αναζητήστε ένα πεδίο με την ετικέτα Admin Password ή RCON Password. Επιβεβαιώστε ότι περιέχει μια τιμή — δεν πρέπει να είναι κενό.
- Εάν το πεδίο είναι κενό, εισαγάγετε έναν κωδικό πρόσβασης. Χρησιμοποιήστε τουλάχιστον 8 χαρακτήρες. Αποφύγετε ειδικούς χαρακτήρες όπως
!,#,$ή@στον κωδικό πρόσβασης admin, καθώς ορισμένες εκδόσεις PZ αποτυγχάνουν να τους αναλύσουν σωστά στα ορίσματα εκκίνησης. - Κάντε κλικ στο Save και επανεκκινήστε τον διακομιστή.
- Ως δευτερεύοντα έλεγχο, ανοίξτε το αρχείο
.iniστο/.cache/server/και επιβεβαιώστε ότι η γραμμήAdminPassword=έχει μια τιμή μετά το σύμβολο ίσον.
Διόρθωση 5 — Επαναφορά του Κόσμου (Έσχατη Λύση για Επίμονα Κρασαρίσματα)
Εάν ένα αρχείο αποθήκευσης κόσμου καταστραφεί — για παράδειγμα μετά από ένα σκληρό κρασάρισμα διακομιστή, μια αποτυχημένη ενημέρωση ή σφάλματα συστήματος αρχείων — τα ίδια τα δεδομένα αποθήκευσης μπορεί να είναι μη ανακτήσιμα. Σε αυτήν την περίπτωση, η διαγραφή του κόσμου και η εκκίνηση από την αρχή είναι η μόνη επιλογή.
Βήματα
- Σταματήστε τον διακομιστή σας στο GPanel πριν κάνετε οποιαδήποτε αλλαγή στα αρχεία αποθήκευσης. Η επεξεργασία αρχείων σε έναν διακομιστή που εκτελείται μπορεί να προκαλέσει περαιτέρω καταστροφή.
- Στο GPanel, μεταβείτε στην καρτέλα File Manager.
- Πλοηγηθείτε στο
/.cache/saves/multiplayer/. - Θα δείτε έναν ή περισσότερους φακέλους με το όνομα του διακομιστή σας (π.χ.
servertest). Πριν τη διαγραφή, προαιρετικά κατεβάστε τον φάκελο ως αντίγραφο ασφαλείας επιλέγοντάς τον και χρησιμοποιώντας την επιλογή λήψης — ακόμα και ένα κατεστραμμένο αρχείο αποθήκευσης μπορεί να είναι μερικώς ανακτήσιμο αργότερα. - Διαγράψτε τον φάκελο που αντιστοιχεί στο όνομα του διακομιστή σας μέσα στο
Multiplayer/. Μην διαγράψετε τον ίδιο τον φάκελοMultiplayer. - Πλοηγηθείτε επίσης στο
/.cache/db/και διαγράψτε το αρχείο<YourServerName>.db. Αυτή η βάση δεδομένων περιέχει στατιστικά παικτών και μπορεί να αναφέρεται στον παλιό κόσμο — η αναγέννησή της αποφεύγει αναντιστοιχίες. - Ξεκινήστε τον διακομιστή σας. Θα δημιουργήσει έναν νέο κόσμο χρησιμοποιώντας τις ρυθμίσεις στο αρχείο
.iniσας.
.ini σας, ο κωδικός πρόσβασης admin, η λίστα mod και οι ρυθμίσεις port διατηρούνται όλα. Η επόμενη εκκίνηση θα χρησιμοποιήσει ακριβώς τις ίδιες ρυθμίσεις για να δημιουργήσει έναν νέο κόσμο.
Γρήγορη Αναφορά Διαγνωστικών
| Τι βλέπετε στο log | Πιο πιθανή αιτία | Διόρθωση |
|---|---|---|
OutOfMemoryError ή Java heap space |
Ανεπαρκής RAM για την εκκίνηση του B42 | Διόρθωση 1 — Bug Μνήμης B42 |
IOException: No space left on device |
Το BackupsOnStart γεμίζει το /tmp |
Διόρθωση 2 — BackupsOnStart |
Σφάλμα SandboxVars ή σφάλμα ανάλυσης Lua |
Κατεστραμμένο ή χειροκίνητα επεξεργασμένο αρχείο διαμόρφωσης | Διόρθωση 3 — SandboxVars.lua |
| Ο διακομιστής τερματίζεται αμέσως, πολύ σύντομη έξοδος κονσόλας | Κενός κωδικός πρόσβασης admin | Διόρθωση 4 — Κωδικός Πρόσβασης Admin |
| Κρασάρει σταθερά ανεξάρτητα από αλλαγές διαμόρφωσης | Κατεστραμμένο αρχείο αποθήκευσης κόσμου | Διόρθωση 5 — Επαναφορά Κόσμου |
Εξακολουθεί να Κρασάρει Μετά από Όλα τα Βήματα;
Εάν ο διακομιστής σας εξακολουθεί να κρασάρει μετά την εφαρμογή κάθε διόρθωσης παραπάνω, ανοίξτε ένα ticket υποστήριξης με τη Legion Hosting. Συμπεριλάβετε τα ακόλουθα για να βοηθήσετε την ομάδα υποστήριξης να διαγνώσει το πρόβλημα γρήγορα:
- Τις τελευταίες 50 γραμμές της εξόδου της κονσόλας GPanel σας κατά τη στιγμή του κρασαρίσματος
- Το πλήρες περιεχόμενο του πιο πρόσφατου αρχείου
debug.logήDebugLog-server.txt - Την έκδοση build του Project Zomboid του διακομιστή σας (εμφανίζεται στην κονσόλα κατά την εκκίνηση, π.χ.
Build 42.x.x) - Τη δέσμευση RAM σας όπως εμφανίζεται στο GPanel
- Εάν το κρασάρισμα συμβαίνει σε κάθε εκκίνηση ή μόνο αφού ο διακομιστής εκτελείται για κάποιο διάστημα
- Οποιεσδήποτε αλλαγές κάνατε πριν ξεκινήσει το κρασάρισμα (προσθήκες mod, επεξεργασίες διαμόρφωσης, ενημερώσεις παιχνιδιού)
Ανοίξτε ένα ticket υποστήριξης και συμπεριλάβετε το ID του διακομιστή σας και τα μηνύματα σφάλματος από την κονσόλα GPanel.