Spaces:
Paused
Paused
Fix playitd crash: create runtime dir + explicit IPC socket path for XDG_RUNTIME_DIR-less containers
Browse files- control.py +9 -2
control.py
CHANGED
|
@@ -14,7 +14,7 @@ from collections import deque
|
|
| 14 |
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
| 15 |
from urllib.parse import parse_qs, urlparse
|
| 16 |
|
| 17 |
-
BUILD = "
|
| 18 |
|
| 19 |
DATA_DIR = os.environ.get("MC_DATA", "/data")
|
| 20 |
JAR = os.environ.get("MC_JAR", "/server/minecraft_server.26.3.jar")
|
|
@@ -69,9 +69,16 @@ class MCController:
|
|
| 69 |
return
|
| 70 |
self.push("[panel] starting playitd", "playit")
|
| 71 |
env = dict(os.environ)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
try:
|
| 73 |
self.playit = subprocess.Popen(
|
| 74 |
-
["playitd", "--secret", PLAYIT_SECRET, "--platform-docker"
|
|
|
|
| 75 |
stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
|
| 76 |
text=True, encoding="utf-8", errors="replace", env=env,
|
| 77 |
)
|
|
|
|
| 14 |
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
| 15 |
from urllib.parse import parse_qs, urlparse
|
| 16 |
|
| 17 |
+
BUILD = "v9"
|
| 18 |
|
| 19 |
DATA_DIR = os.environ.get("MC_DATA", "/data")
|
| 20 |
JAR = os.environ.get("MC_JAR", "/server/minecraft_server.26.3.jar")
|
|
|
|
| 69 |
return
|
| 70 |
self.push("[panel] starting playitd", "playit")
|
| 71 |
env = dict(os.environ)
|
| 72 |
+
runtime_dir = "/tmp/playitd"
|
| 73 |
+
try:
|
| 74 |
+
os.makedirs(runtime_dir, mode=0o700, exist_ok=True)
|
| 75 |
+
except OSError as e:
|
| 76 |
+
self.push(f"[panel] playitd runtime dir: {e}", "playit")
|
| 77 |
+
env["XDG_RUNTIME_DIR"] = runtime_dir
|
| 78 |
try:
|
| 79 |
self.playit = subprocess.Popen(
|
| 80 |
+
["playitd", "--secret", PLAYIT_SECRET, "--platform-docker",
|
| 81 |
+
"--socket-path", os.path.join(runtime_dir, "ipc.sock")],
|
| 82 |
stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
|
| 83 |
text=True, encoding="utf-8", errors="replace", env=env,
|
| 84 |
)
|