cpulimit

Releases

The full history is CHANGELOG.md. The command-line interface and the exit statuses documented in man cpulimit are the public interface that 1.x keeps stable (semantic versioning).

1.0.3 2026-10-28

OpenBSD and NetBSD support, one shared selection of a process and its descendants for all iterators, a FreeBSD iterator that follows the whole tree under -i (it stopped at the direct children before), clang-format, a wider CI matrix of virtual machines. Options, exit statuses and log text unchanged.

1.0.2 2026-10-24

Source tree reorganized by role, CI and benchmark workflows repaired, CBMC moved to its own workflow. No change to options, exit statuses or log text.

1.0.1 2026-10-22

The bounded model checker found a real defect: compute_slices() computed 0 / NaN and cleaned it up afterwards. It now never produces a NaN; the result is identical for every input. Verification harnesses reworked.

1.0.0 2026-10-21

First release of the fork: daemon mode, syslog, pid file, single-limiter lock, single-process command mode, strict option parsing, pid and start-time identity, a rewritten /proc reader, a non-recursive build, GitHub Actions instead of Travis.

Moving between versions: Upgrading.

Verify a download

Release assets are static musl binaries named cpulimit-ARCH-linux-musl, each with a .sha256 file. The release workflow has not produced a release yet; if the releases page lists assets, check them like this:

sha256sum -c cpulimit-x86_64-linux-musl.sha256
chmod +x cpulimit-x86_64-linux-musl && ./cpulimit-x86_64-linux-musl -V

The checksum guards against a damaged download, not against a compromised release page. Building from source remains the reference: make && make check && sudo make install.