Skip to content

Bound detached OpenSSH master persistence - #69

Merged
wesm merged 1 commit into
mainfrom
openssh-control-persist
Aug 13, 2026
Merged

Bound detached OpenSSH master persistence#69
wesm merged 1 commit into
mainfrom
openssh-control-persist

Conversation

@wesm

@wesm wesm commented Aug 13, 2026

Copy link
Copy Markdown
Member

Detached ControlMaster processes currently depend entirely on their owner process to send an explicit exit command. An owner crash can therefore leave a live master behind indefinitely.

  • Adds an optional ControlPersistTimeout to shared connection options.
  • Emits a bounded OpenSSH ControlPersist value for detached masters.
  • Preserves explicit-lifecycle-only behavior when the timeout is zero.
  • Rejects negative persistence durations during normal option validation.

A lifecycle owner can exit before its in-process idle timer fires. Let callers set an OpenSSH ControlPersist timeout so a detached master still retires after the configured idle period when graceful cleanup cannot run.

Zero keeps the existing explicit-lifecycle behavior. Negative durations fail during option validation.

Generated with OpenAI Codex
Co-authored-by: OpenAI Codex <noreply@openai.com>
@wesm
wesm merged commit 5d83a43 into main Aug 13, 2026
9 checks passed
@wesm
wesm deleted the openssh-control-persist branch August 13, 2026 22:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant