ไฟล์หน่วย Systemd ใช้งานได้กับชื่ออินสแตนซ์เดียวเท่านั้นไม่ใช่ชื่ออื่น


1

มีเซิร์ฟเวอร์ Minecraft สองตัวที่ทำงานบนเซิร์ฟเวอร์ Debian ของฉัน เพื่อหลีกเลี่ยงการยุ่งทั้งหมดของการประสานงานหลายส่วนด้วยตนเองของ tmux ฉันได้เขียนไฟล์ systemd unit เพื่อทำสิ่งนั้นทั้งหมดสำหรับฉัน:

[Unit]
Description=Minecraft Server: %i
After=network.target

[Service]
WorkingDirectory=/opt/minecraft/servers/%i
User=minecraft
Group=minecraft
Type=forking
RemainAfterExit=yes

#Restart=on-abnormal

ExecStart=/usr/bin/tmux new -s mc-%i -d '/usr/bin/java -Xms1G -Xmx4G -jar forge-universal.jar nogui'

ExecStop=/usr/bin/tmux send -t mc-%i 'say SERVER WILL SHUT DOWN IN 10 SECONDS' ENTER
ExecStop=/bin/sleep 10
ExecStop=/usr/bin/tmux send -t mc-%i 'stop' ENTER

[Install]
WantedBy=multi-user.target

มีสองไดเรกทอรีย่อยในมี/opt/minecraft/servers/: และprivate otherserverรายชื่อไฟล์ของไดเรกทอรีเหล่านี้มีลักษณะดังนี้:

minecraft@server ~ # ls -la /opt/minecraft/servers/private/
total 39180
drwxr-xr-x  9 minecraft minecraft     4096 Dec 20 21:34 .
drwxr-xr-x  5 minecraft minecraft     4096 Dec 19 21:11 ..
-rw-r--r--  1 minecraft minecraft        2 Dec 20 21:33 banned-ips.json
-rw-r--r--  1 minecraft minecraft        2 Dec 20 21:33 banned-players.json
drwxr-xr-x 10 minecraft minecraft     4096 Oct 11 16:22 config
drwxr-xr-x  2 minecraft minecraft     4096 Oct 11 16:11 crash-reports
-rw-r--r--  1 minecraft minecraft      181 Oct 11 16:11 eula.txt
-rw-r--r--  1 minecraft minecraft  4888981 Oct 11 16:10 forge-1.12.2-14.23.5.2768-universal.jar
lrwxrwxrwx  1 minecraft minecraft       39 Oct 11 11:41 forge-universal.jar -> forge-1.12.2-14.23.5.2768-universal.jar
drwxr-xr-x  3 minecraft minecraft     4096 Apr 14  2018 journeymap
drwxr-xr-x  8 minecraft minecraft     4096 Apr 14  2018 libraries
drwxr-xr-x  2 minecraft minecraft     4096 Dec 20 21:32 logs
-rw-r--r--  1 minecraft minecraft      369 Oct 11 15:04 mapcrafter.conf
-rw-r--r--  1 minecraft minecraft 30222121 Oct 11 16:10 minecraft_server.1.12.2.jar
drwxr-xr-x  3 minecraft minecraft     4096 Oct 11 16:21 mods
-rw-r--r--  1 minecraft minecraft      271 Dec 20 21:33 ops.json
-rw-r--r--  1 minecraft minecraft      843 Dec 20 21:33 server.properties
-rw-r--r--  1 minecraft minecraft      322 Dec 20 21:32 usercache.json
-rw-r--r--  1 minecraft minecraft      112 Oct 13 23:18 usernamecache.json
-rw-r--r--  1 minecraft minecraft      171 Dec 18 22:07 whitelist.json
drwxr-xr-x 11 minecraft minecraft     4096 Dec 20 21:33 world

การเรียกใช้systemctl start minecraft@otherserverผลลัพธ์ในเซสชัน tmux ใหม่สำหรับผู้ใช้ที่minecraftเรียกใช้mc-otherserverและเซิร์ฟเวอร์ Minecraft เริ่มต้นสำเร็จ

systemctl start minecraft@privateในทางกลับกันการดำเนินการไม่ได้ทำอะไรเลยอย่างแท้จริง คำสั่งจะส่งคืนทันทีไม่วางไข่เซสชัน tmux ใหม่ไม่เริ่มเซิร์ฟเวอร์ Minecraft ใหม่ไม่มีอะไร ฉันตรวจสอบว่าอินสแตนซ์ Minecraft นั้นเพิ่งพังหรือไม่ แต่ไม่ใช่ การดำเนินการด้วยตนเองtmux new -s mc-private -d 'java -Xms1G -Xmx4G -jar forge-universal.jar noguiในไดเรกทอรีของเซิร์ฟเวอร์ทำงานได้อย่างไร้ที่ติและเริ่มต้นเซิร์ฟเวอร์ Minecraft ในอินสแตนซ์ tmux ใหม่ตามที่ต้องการ

พอรู้ตัวว่าเซิร์ฟเวอร์ทั้งสองทำงานเมื่อไม่กี่วันก่อน ฉันตรวจสอบการเปลี่ยนแปลงสำหรับ systemd และ tmux แต่เท่าที่ฉันสามารถบอกได้พวกเขายังไม่ได้รับการอัปเดตสำหรับเดเบียนเสถียรเป็นเวลาหลายสัปดาห์

นอกจากjournalctlนี้ไม่มีข้อมูลเกี่ยวกับไฟล์หน่วยความล้มเหลวเลยดังนั้นฉันจึงเสียที่นี่ ไม่มีใครรู้ว่าสิ่งใดที่อาจทำให้เกิดปัญหานี้?

คำตอบ:


2

ถอนหายใจ กลับกลายเป็นว่าminecraft@privateบริการถูกระบุว่าเป็นloaded failed failedในsystemctl list-unitsและจึงถูกป้องกันจากการเริ่มต้นอีกครั้ง

การsystemctl reset-failedแก้ไขปัญหาของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.