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
|
||||
[Unit]
|
||||
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]
|
||||
ListenFIFO=$FIFO
|
||||
Service=minecraft.service
|
||||
SocketUser=$MCUSER
|
||||
SocketGroup=$MCUSER
|
||||
SocketMode=0660
|
||||
|
|
@ -310,6 +312,7 @@ Documentation=https://docs.neoforged.net/
|
|||
After=network-online.target zfs-mount.service
|
||||
Wants=network-online.target
|
||||
Requires=minecraft.socket
|
||||
After=minecraft.socket
|
||||
RequiresMountsFor=$SHARE
|
||||
|
||||
[Service]
|
||||
|
|
@ -349,7 +352,7 @@ EOF
|
|||
|
||||
info "reloading systemd"
|
||||
systemctl daemon-reload
|
||||
systemctl enable minecraft.socket minecraft.service >/dev/null
|
||||
systemctl enable minecraft.service >/dev/null
|
||||
if (( HTTP )); then
|
||||
systemctl enable packwiz-http.service >/dev/null
|
||||
systemctl restart packwiz-http.service
|
||||
|
|
|
|||
Loading…
Reference in New Issue