https://github.com/brandonkramer/procenv
Read one environment variable from another process by PID (Linux /proc, macOS ps). Stdlib-only Go library.
https://github.com/brandonkramer/procenv
environment go golang library linux process procfs
Last synced: 25 days ago
JSON representation
Read one environment variable from another process by PID (Linux /proc, macOS ps). Stdlib-only Go library.
- Host: GitHub
- URL: https://github.com/brandonkramer/procenv
- Owner: brandonkramer
- License: mit
- Created: 2026-06-01T19:30:48.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-01T19:48:54.000Z (about 2 months ago)
- Last Synced: 2026-06-01T21:25:00.525Z (about 2 months ago)
- Topics: environment, go, golang, library, linux, process, procfs
- Language: Go
- Size: 49.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# procenv
Read one environment variable from another process by pid.
## Install
From [pkg.go.dev](https://pkg.go.dev/github.com/brandonkramer/procenv):
```bash
go get github.com/brandonkramer/procenv@v0.1.0
```
## Usage
```go
value, ok := procenv.ProcEnv(pid, "MYAPP_RUN_ID")
if !ok {
// pid invalid, process gone, or key missing
}
```
| Platform | Mechanism |
|----------|-----------|
| Linux | `/proc//environ` |
| macOS | `ps eww -p ` |
| Other | always `("", false)` |
Invalid `pid` (≤ 0) or empty `key` returns `("", false)` without syscalls.
## Development
Lefthook and golangci-lint are pinned in `go.mod` as **tools** (dev-only). Install git hooks once per clone:
```bash
make install-hooks
```
```bash
make check
make test
make lint
```