Repository navigation
🔍 whyrun v1.0.0 — first stable release
Trace a port / PID / process name / open file back to what started it — one static binary, zero dependencies, zero telemetry.
✨ Highlights
whyrun port <PORT>— resolve the process behind a listening TCP/UDP port (IPv4 & IPv6)whyrun pid <PID>— executable, full command line, cwd, user, state, start time, sockets, container IDwhyrun name <REGEX>— fuzzy process matching across name / exe / cmdlinewhyrun file <PATH>— find every process holding a file open (exact/proc/PID/fdmatching on Linux)whyrun tree [PID]— whole-machine or subtree process tree with--depth- Full parent launch chain ("launched by 1 systemd → … → target") for every match
- Linux reads
/procdirectly — no lsof/netstat required; macOS/BSD use ps+lsof; Windows uses CIM +netstat -ano - Docker / containerd / Kubernetes container ID detection via cgroup
--jsonon every command + stable exit codes (0 found / 1 not found / 2 usage / 3 internal)- Pure Go standard library only, statically linked, ~2 MB binary
📦 Downloads
Choose the archive matching your OS/CPU; SHA256SUMS.txt covers every asset.
| Platform | Asset |
|---|---|
| Linux x86_64 | whyrun_1.0.0_linux_amd64.tar.gz |
| Linux ARM64 | whyrun_1.0.0_linux_arm64.tar.gz |
| macOS Intel | whyrun_1.0.0_darwin_amd64.tar.gz |
| macOS Apple Silicon | whyrun_1.0.0_darwin_arm64.tar.gz |
| Windows x64 | whyrun_1.0.0_windows_amd64.zip |
| Windows ARM64 | whyrun_1.0.0_windows_arm64.zip |
✅ Verification
sha256sum -c SHA256SUMS.txt📖 Docs
Multilingual READMEs: 简体中文 · 繁體中文 · English · 日本語. See the repository for the full guide.
中文说明
首个稳定版:统一三大平台的端口/进程/文件溯源,一条命令还原「谁占了端口、谁拉起了进程、谁锁了文件」以及完整父进程启动链。Linux 直读 /proc 零外部命令,纯标准库静态二进制,下载解压即用。校验完整性请运行 sha256sum -c SHA256SUMS.txt。
Full Changelog: https://github.com/gitstq/whyrun/commits/v1.0.0