เซิร์ฟเวอร์ 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 ปัจจุบันของเซิร์ฟเวอร์ที่แสดงในแถบทรัพยากรหรือแผงข้อมูลเซิร์ฟเวอร์
- หากแผนของคุณมี RAM น้อยกว่า 10 GB เซิร์ฟเวอร์อาจแครชระหว่างการเริ่มต้นเนื่องจาก B42 ต้องการประมาณ 9 GB เพื่อเริ่มต้นทำงาน คุณจะต้องอัปเกรดแผนของคุณหรือรอให้ 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 พร้อมหมายเลขบรรทัด - การแครชเริ่มเกิดขึ้นทันทีหลังจากที่คุณแก้ไขการตั้งค่าในไฟล์
.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 โดยตรง แต่ให้ใช้แผงผู้ดูแลในเกมหรือ UI การตั้งค่าเซิร์ฟเวอร์ใน GPanel หากมี การแก้ไขโดยตรงมีโอกาสเกิดข้อผิดพลาดง่ายและสามารถทำให้เซิร์ฟเวอร์พังได้ด้วยเครื่องหมายจุลภาคเพียงตัวเดียวที่ลืมใส่
การแก้ไข 4 — รหัสผ่านผู้ดูแลที่ว่างเปล่าทำให้แครช
Project Zomboid ต้องใช้รหัสผ่านผู้ดูแลที่ไม่ว่างเปล่าเพื่อเริ่มเซิร์ฟเวอร์ผู้เล่นหลายคน หากฟิลด์รหัสผ่านว่างเปล่า กระบวนการเซิร์ฟเวอร์จะออกทันทีหลังจากพยายามเริ่มต้นบัญชีผู้ดูแล
อาการ
- เซิร์ฟเวอร์ใหม่เอี่ยมหรือเซิร์ฟเวอร์ที่เพิ่งรีเซ็ตล้มเหลวในการเริ่มทุกครั้ง
- เอาต์พุตคอนโซลสั้นมาก — เซิร์ฟเวอร์พิมพ์บรรทัดการเริ่มต้นไม่กี่บรรทัดแล้วหยุด
debug.logอาจมีการอ้างอิงถึงบัญชีผู้ดูแลหรือการตรวจสอบรหัสผ่าน
ขั้นตอน
- ใน GPanel คลิกเซิร์ฟเวอร์ของคุณและไปที่แท็บ Startup
- มองหาฟิลด์ที่มีชื่อ Admin Password หรือ RCON Password ยืนยันว่ามีค่าอยู่ — ต้องไม่ว่างเปล่า
- หากฟิลด์ว่างเปล่า ให้กรอกรหัสผ่าน ใช้อักขระอย่างน้อย 8 ตัว หลีกเลี่ยงอักขระพิเศษเช่น
!,#,$หรือ@ในรหัสผ่านผู้ดูแล เนื่องจาก PZ บางเวอร์ชันไม่สามารถแยกวิเคราะห์ได้อย่างถูกต้องในอาร์กิวเมนต์การเริ่มต้น - คลิก 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 |
ไฟล์การกำหนดค่าที่เสียหายหรือแก้ไขด้วยมือ | การแก้ไข 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