Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

activation: allow more control over socket-activated file descriptors #441

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

percivalalb
Copy link

The XY of the problem is the fds indices used by systemd socket activation are left empty once activation.Listener is called. Any new fds typically take the lowest available fds, which means the expected socket-activated indices may be populated by other fds at any other point in the executing of the program.

I'm creating a library that enables zero-downtime restarts by execve'ing the same program which requires that the fds be populated in the expected indices. This is not possible if another part of the program is using those fds.

  • This gives 3 methods of control, leaving currently logic intac:
    • ConsumeFiles the default and matches the previous logic - closes the systemd fds passed in.
    • ReserveFiles "reserves" the systemd fds by atomically replacing them with fds pointing at /dev/null
    • ConserveFiles does nothing and keeps the systemd fds open
  • Also exposes the unsetEnv of the system

@percivalalb percivalalb changed the title Draft: Allow more control over socket-activated file descriptors activation: allow more control over socket-activated file descriptors May 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant