Repository navigation
fix: keep linux listeners whose pid is hidden - #26
Merged
Merged
Conversation
ss without root lists other users' sockets without users:(...). list now shows them as pid ? (null in --json) and counts them as orphans; kill reports each as failed with a sudo hint, kills the visible ones, exits 1. Closes #13
…eners # Conflicts: # packages/leeway/src/cli.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #13
Summary
On Linux,
ssrun without sudo lists other users' listeners (e.g.docker-proxy) but leaves out theirusers:(...)part. leeway used to drop these listeners. It now keeps each one with anullpid.RangeKill.failed(plan, failures)now decides the exit code: true when a kill failed or a pid is hidden.RangeKill.renderandRangeKill.failedsit side by side, so the "hidden pid = failure" rule is in one module.Evidence
ssrowLISTEN 0 128 127.0.0.1:631 0.0.0.0:*→ no listener.killprintednothing is listening.After: unit tests, red before the change, green after:
pnpm verifypasses on Windows: 261 passed, 3 skipped.pnpm test:linuxwas not run locally because podman isn't installed; CI's ubuntu job covers Linux.Merge Danger
Door: two-way
The hint says "sudo", not the issue's "root": "root" is a GLOSSARY Avoid term (it means a folder there).
Blast Radius: small
A script reading
leeway list --jsonmay now see"pid": nullon Linux.leeway killon Linux now exits 1 where it used to exit 0 and silently skip listeners it couldn't see. Windows and macOS output is unchanged.