Skip to content

Preserve systemd provided socket after shutdown #20490

Closed
@frankli0324

Description

@frankli0324

Description

I struggle to understand why gitea unlinks the socket file on shutdown (L171):

for i, l := range providedListeners {
if isSameAddr(l.Addr(), address) {
providedListeners = append(providedListeners[:i], providedListeners[i+1:]...)
activeListeners = append(activeListeners, l)
unixListener := l.(*net.UnixListener)
unixListener.SetUnlinkOnClose(true)
return unixListener, nil
}
}

I believe this is unwanted behavior since it breaks systemctl restart gitea when using socket activation.

Gitea Version

a701fd3

Can you reproduce the bug on the Gitea demo site?

No

Log Gist

No response

Screenshots

No response

Git Version

No response

Operating System

No response

How are you running Gitea?

# gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target

Wants=postgresql.service
After=postgresql.service

After=gitea.socket
Requires=gitea.socket

[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea --config /etc/gitea/app.ini --custom-path /pool/git/custom --work-path /var/lib/gitea/ web
Restart=always
Environment=USER=git

[Install]
WantedBy=multi-user.target
# gitea.socket
[Unit]
Description=Gitea Web Socket

[Socket]
ListenStream=/run/gitea/gitea.sock
SocketMode=0666
SocketUser=git
SocketGroup=git

[Install]
WantedBy=sockets.target

Database

PostgreSQL

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions