Procward owns a command's process tree and provides job control for CLI programs on Linux, FreeBSD, macOS and Windows. It cleans up owned work when the command exits or its owner disappears, while preserving the command's exit status. macOS cleanup is best-effort for observed descendants, not kernel containment.
Download your target's procward-<target>.zip and SHA256SUMS from
Releases. Debug builds are named
procward-<target>-debug.zip. Verify before extracting or running:
# Substitute the published version and your target.
tag=v0.1.1
target=x86_64-unknown-linux-gnu
asset="procward-$target.zip"
gh release download "$tag" --repo xz-dev/procward --pattern "$asset" --pattern SHA256SUMS
grep " $asset$" SHA256SUMS | sha256sum --check -
gh attestation verify "$asset" --repo xz-dev/procward \
--signer-workflow xz-dev/procward/.github/workflows/release.yml \
--source-ref "refs/tags/$tag"
unzip "$asset"Use shasum -a 256 on macOS or Get-FileHash -Algorithm SHA256 in PowerShell
when sha256sum is unavailable. Put procward (procward.exe on Windows) on
PATH. Full target list and source-pinned verification commands:
CI and releases.
procward run -- command arg1 "two words"
procward run --grace 6s --fatal-grace 3s --cleanup-deadline 7500ms -- commandArguments execute directly, without an added shell. Durations use integer s
or ms; require 0 < fatal-grace <= grace < cleanup-deadline. Defaults are
6s, 3s and 7500ms. Use procward --help for options.
Procward originated from the process-ownership needs of pi, its main intended consumer. This is a new standalone Rust implementation built on maintained crates and native OS facilities, not copied or translated pi or pi-env code.
Licensed under BSD-3-Clause.