Fix ordering cycle between minecraft.service and minecraft.socket
The socket declared Service=minecraft.service and PartOf=minecraft.service while the service declared Requires=minecraft.socket. That is a cycle, which systemd breaks by failing a job — surfacing as "a dependency job for minecraft.service failed" with no obvious cause. The socket now only listens; the service owns the relationship via Requires=/After=/Sockets=. Also stop enabling minecraft.socket directly: it has no [Install] section, and the service pulls it in. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>main
parent
ed85ef98b3
commit
a141a31547
|
|
@ -291,11 +291,13 @@ info "writing $UNIT_DIR/minecraft.socket"
|
||||||
cat > "$UNIT_DIR/minecraft.socket" <<EOF
|
cat > "$UNIT_DIR/minecraft.socket" <<EOF
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Minecraft server console FIFO
|
Description=Minecraft server console FIFO
|
||||||
PartOf=minecraft.service
|
|
||||||
|
|
||||||
|
# No Service= and no PartOf= here on purpose. minecraft.service already declares
|
||||||
|
# Requires=/After=/Sockets= on this unit, and pointing this one back at the
|
||||||
|
# service as well forms an ordering cycle that systemd resolves by failing the
|
||||||
|
# job — which surfaces as "a dependency job for minecraft.service failed".
|
||||||
[Socket]
|
[Socket]
|
||||||
ListenFIFO=$FIFO
|
ListenFIFO=$FIFO
|
||||||
Service=minecraft.service
|
|
||||||
SocketUser=$MCUSER
|
SocketUser=$MCUSER
|
||||||
SocketGroup=$MCUSER
|
SocketGroup=$MCUSER
|
||||||
SocketMode=0660
|
SocketMode=0660
|
||||||
|
|
@ -310,6 +312,7 @@ Documentation=https://docs.neoforged.net/
|
||||||
After=network-online.target zfs-mount.service
|
After=network-online.target zfs-mount.service
|
||||||
Wants=network-online.target
|
Wants=network-online.target
|
||||||
Requires=minecraft.socket
|
Requires=minecraft.socket
|
||||||
|
After=minecraft.socket
|
||||||
RequiresMountsFor=$SHARE
|
RequiresMountsFor=$SHARE
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
|
@ -349,7 +352,7 @@ EOF
|
||||||
|
|
||||||
info "reloading systemd"
|
info "reloading systemd"
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl enable minecraft.socket minecraft.service >/dev/null
|
systemctl enable minecraft.service >/dev/null
|
||||||
if (( HTTP )); then
|
if (( HTTP )); then
|
||||||
systemctl enable packwiz-http.service >/dev/null
|
systemctl enable packwiz-http.service >/dev/null
|
||||||
systemctl restart packwiz-http.service
|
systemctl restart packwiz-http.service
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue