tag:github.com,2008:https://github.com/finit-project/finit/releases Tags from finit 2026-02-27T09:36:23Z tag:github.com,2008:Repository/5778132/4.16 2026-02-27T09:44:15Z Finit v4.16 <p>Finit v4.16 GA</p> <p>Changes:</p> <p>- Add `initctl switch-root` command and plugin hook point. Useful for <br /> systems requiring early boot tasks like LUKS unlock, LVM activation, <br /> or network boot before mounting the real root, by Aaron Andersen <br />- Set USER and LOGNAME environment variables when dropping privileges. <br /> Fixes issues with software like rootless Podman that determines user <br /> identity from environment variables, by Aaron Andersen <br />- Add `remain:yes` option for run/task oneshot commands, similar to the <br /> systemd `RemainAfterExit=yes`, by Aaron Andersen <br />- Clear service conditions on `initctl reload NAME` to ensure dependent <br /> services are properly updated <br />- Run service `stop:` and `reload:` scripts as non-blocking processes, <br /> preventing Finit from stalling on long-running helper scripts <br />- Guard shutdown with timer watchdog to detect and debug shutdown hangs <br />- Add `~` condition prefix to propagate reload from a dependency to the <br /> dependent service. E.g., `&lt;!~pid/netd&gt;` means not only a regular <br /> condition, but when `netd` reloads, restart this service too. Similar <br /> to systemd's directive `PropagatesReloadTo=`, but declared on the <br /> consumer side. Issue <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/416">#416</a> <br />- `tmpfiles`: add support for `-E` and `--exclude-prefix` flags <br /> contributed by Aaron Andersen</p> <p>Fixes:</p> <p>- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/464">#464</a>: invalid user:group examples in cgroups.md <br />- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/pull/466">#466</a>: elogind path for Debian-based distros, by Jackie Liu <br />- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/467">#467</a>: TTY services stuck in restart state after non-zero exit. <br /> Throttling logic introduced in v4.15 had duplicate checks causing <br /> infinite timer loop, and TTYs lacked default restart timeout <br />- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/475">#475</a>: clear pid condition on service collection to fix stale <br /> deps. When a service crashes (SIGKILL), the RUNNING → HALTED path <br /> bypasses STOPPING where `cond_clear()` is normally called, leaving <br /> dependents stuck <br />- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/476">#476</a>: dependents not restarted after SIGHUP reload of service in <br /> dependency chain. Add `service_step_all()` at end of reload cycle to <br /> guarantee convergence after conditions are reasserted. See also the <br /> new `~` condition prefix (above) to propagate reload to dependents <br />- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/pull/478">#478</a>: fix `&lt;dev/foo&gt;` conditions at boot, conditions that exist <br /> before inotify was set up. Found and fixed by Mattias Walström <br />- Fix reload of SIGHUP-capable services incorrectly disrupting their <br /> dependents. E.g., `initctl reload syslogd` would stop dbus, dnsmasq, <br /> etc. even though syslogd handles SIGHUP gracefully and its PID persists <br />- Only remove managed pidfiles in service cleanup. For SysV services <br /> with `pid:!/path`, the pidfile belongs to the service itself and Finit <br /> should not delete it <br />- Silence spurious cgroup warnings for short-lived processes where the <br /> kernel reaps the child before cgroup assignment completes <br />- Fix handling of already-mounted cgroups in `cgroup_init()`, can occur <br /> after switch_root or in container environments <br />- Improve cgroups documentation clarity, grammar, and examples</p> <p>Signed-off-by: Joachim Wiberg &lt;[email protected]&gt;</p> github-actions tag:github.com,2008:Repository/5778132/4.16-rc1 2026-02-24T04:45:02Z Finit v4.16-rc1 <p>Finit v4.16-rc1</p> <p>Changes:</p> <p>- Add `initctl switch-root` command and plugin hook point. Useful for <br /> systems requiring early boot tasks like LUKS unlock, LVM activation, <br /> or network boot before mounting the real root, by Aaron Andersen <br />- Set USER and LOGNAME environment variables when dropping privileges. <br /> Fixes issues with software like rootless Podman that determines user <br /> identity from environment variables, by Aaron Andersen <br />- Add `remain:yes` option for run/task oneshot commands, similar to the <br /> systemd `RemainAfterExit=yes`, by Aaron Andersen <br />- Clear service conditions on `initctl reload NAME` to ensure dependent <br /> services are properly updated <br />- Run service `stop:` and `reload:` scripts as non-blocking processes, <br /> preventing Finit from stalling on long-running helper scripts <br />- Guard shutdown with timer watchdog to detect and debug shutdown hangs <br />- Add `~` condition prefix to propagate reload from a dependency to the <br /> dependent service. E.g., `&lt;!~pid/netd&gt;` means not only a regular <br /> condition, but when `netd` reloads, restart this service too. Similar <br /> to systemd's directive `PropagatesReloadTo=`, but declared on the <br /> consumer side. Issue <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/416">#416</a> <br />- `tmpfiles`: add support for `-E` and `--exclude-prefix` flags <br /> contributed by Aaron Andersen</p> <p>Fixes:</p> <p>- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/464">#464</a>: invalid user:group examples in cgroups.md <br />- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/pull/466">#466</a>: elogind path for Debian-based distros, by Jackie Liu <br />- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/467">#467</a>: TTY services stuck in restart state after non-zero exit. <br /> Throttling logic introduced in v4.15 had duplicate checks causing <br /> infinite timer loop, and TTYs lacked default restart timeout <br />- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/475">#475</a>: clear pid condition on service collection to fix stale <br /> deps. When a service crashes (SIGKILL), the RUNNING → HALTED path <br /> bypasses STOPPING where `cond_clear()` is normally called, leaving <br /> dependents stuck <br />- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/476">#476</a>: dependents not restarted after SIGHUP reload of service in <br /> dependency chain. Add `service_step_all()` at end of reload cycle to <br /> guarantee convergence after conditions are reasserted. See also the <br /> new `~` condition prefix (above) to propagate reload to dependents <br />- <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/pull/478">#478</a>: fix `&lt;dev/foo&gt;` conditions at boot, conditions that exist <br /> before inotify was set up. Found and fixed by Mattias Walström <br />- Fix reload of SIGHUP-capable services incorrectly disrupting their <br /> dependents. E.g., `initctl reload syslogd` would stop dbus, dnsmasq, <br /> etc. even though syslogd handles SIGHUP gracefully and its PID persists <br />- Only remove managed pidfiles in service cleanup. For SysV services <br /> with `pid:!/path`, the pidfile belongs to the service itself and Finit <br /> should not delete it <br />- Silence spurious cgroup warnings for short-lived processes where the <br /> kernel reaps the child before cgroup assignment completes <br />- Fix handling of already-mounted cgroups in `cgroup_init()`, can occur <br /> after switch_root or in container environments <br />- Improve cgroups documentation clarity, grammar, and examples</p> <p>Signed-off-by: Joachim Wiberg &lt;[email protected]&gt;</p> github-actions tag:github.com,2008:Repository/5778132/4.15 2026-01-01T15:53:29Z Finit v4.15 <p>Finit v4.15 GA</p> <p>Signed-off-by: Joachim Wiberg &lt;[email protected]&gt;</p> github-actions tag:github.com,2008:Repository/5778132/4.15-rc2 2026-01-01T15:08:55Z Finit v4.15-rc2 <p>Finit v4.15-rc2</p> <p>Signed-off-by: Joachim Wiberg &lt;[email protected]&gt;</p> github-actions tag:github.com,2008:Repository/5778132/4.15-rc1 2025-12-18T06:24:31Z Finit v4.15-rc1 <p>Finit v4.15-rc1</p> <p>Signed-off-by: Joachim Wiberg &lt;[email protected]&gt;</p> github-actions tag:github.com,2008:Repository/5778132/4.14 2025-08-29T15:15:19Z Finit v4.14 <p>Finit v4.14 GA</p> <p>Signed-off-by: Joachim Wiberg &lt;[email protected]&gt;</p> github-actions tag:github.com,2008:Repository/5778132/4.13 2025-08-05T06:03:00Z Finit v4.13 <p>Finit v4.13 GA</p> <p> - `initctl signal` command has been renamed to `initctl kill` <br /> - Drop xz tarballs from distribution, gzip is good enough <br /> - New `tmpfiles` stand-alone program, refactored from the existing <br /> tmpfiles.d support in Finit, by Aaron Andersen, PR <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/pull/439">#439</a> <br /> - `--remove` command runs only the `r` and `R` rules <br /> - `--create` is used for all other cases (bootstrap) <br /> - All `notify:systemd` services now log with `logit` by default. This <br /> because it supports systemd style log severity, leading `"&lt;NUM&gt;"` <br /> - Support for quoted arguments to run/task/service options, issue <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/441">#441</a> <br /> - Clear command line arguments after bootstrap, issue <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/442">#442</a> <br /> - Support for `stop:'script [args]'` to stop a sysv/service instead of <br /> the common `foo-stop-start.sh stop`, or `SIGTERM`, issue <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/412">#412</a> <br /> - Support for `reload:'script [args]'` to trigger a configuration <br /> reload in a service, issue <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/446">#446</a></p> <p> - <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/437">#437</a>: buffer overflow in `initctl status` <br /> - <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/438">#438</a>: support very long command lines in `initctl ps/top` <br /> - <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/440">#440</a>: broken systemd and s6 readiness notification <br /> - <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/pull/443">#443</a>: build warnings, by Ming Liu, Atlas Copco <br /> - <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/pull/444">#444</a>: handle loooooong arguments, by Aaron Andersen <br /> - Fix service's redirected stdout/stderr log priority in fallback mode, <br /> when neither `logger` or `logit` is available. This fix also checks <br /> for systemd style log severity, leading `"&lt;NUM&gt;"` in log messages <br /> - Ensure API socket used by `initctl` is non-blocking (event loop)</p> <p>Signed-off-by: Joachim Wiberg &lt;[email protected]&gt;</p> github-actions tag:github.com,2008:Repository/5778132/4.13-rc1 2025-07-10T14:56:44Z Finit v4.13-rc1 <p>Finit v4.13-rc1</p> <p> - Drop xz tarballs from distribution, gzip is good enough <br /> - New `tmpfiles` stand-alone program, refactored from the existing <br /> tmpfiles.d support in Finit, by Aaron Andersen, PR <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/pull/439">#439</a> <br /> - `--remove` command runs only the `r` and `R` rules <br /> - `--create` is used for all other cases (bootstrap) <br /> - All `notify:systemd` services now log with `logit` by default. This <br /> because it supports systemd style log severity, leading `"&lt;NUM&gt;"` <br /> - Support for quoted arguments to run/task/service options, issue <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/441">#441</a> <br /> - Clear command line arguments after bootstrap, issue <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/442">#442</a> <br /> - Support for `stop:'script [args]'` to stop a sysv/service instead of <br /> the common `foo-stop-start.sh stop`, or `SIGTERM`, issue <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/412">#412</a> <br /> - Support for `reload:'script [args]'` to trigger a configuration <br /> reload in a service, issue <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/446">#446</a></p> <p> - <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/437">#437</a>: buffer overflow in `initctl status` <br /> - <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/438">#438</a>: support very long command lines in `initctl ps/top` <br /> - <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/440">#440</a>: broken systemd and s6 readiness notification <br /> - <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/pull/443">#443</a>: build warnings, by Ming Liu, Atlas Copco <br /> - <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/pull/444">#444</a>: handle loooooong arguments, by Aaron Andersen <br /> - Fix service's redirected stdout/stderr log priority in fallback mode, <br /> when neither `logger` or `logit` is available. This fix also checks <br /> for systemd style log severity, leading `"&lt;NUM&gt;"` in log messages <br /> - Ensure API socket used by `initctl` is non-blocking (event loop)</p> <p>Signed-off-by: Joachim Wiberg &lt;[email protected]&gt;</p> github-actions tag:github.com,2008:Repository/5778132/4.12 2025-04-27T22:49:47Z Finit v4.12 <p>Finit v4.12</p> <p> - Improve notify:s6 readiness compatibility, by Aaron Andersen <br /> - Update `runparts` usage text <br /> - Fix variable overloading in urandom plugin <br /> - Fix buffer overwrite in urandom plugin, reported by Aaron Andersen</p> <p>Signed-off-by: Joachim Wiberg &lt;[email protected]&gt;</p> github-actions tag:github.com,2008:Repository/5778132/4.11 2025-03-27T18:34:10Z Finit v4.11 <p>Finit v4.11 GA</p> <p> - Update documentation regarding transition from runlevel S to 2, how <br /> run/tasks must "complete" before Finit can move to the next runlevel <br /> - Improve argument handling in bundled getty when launching login</p> <p> - <span class="issue-keyword tooltipped tooltipped-se">Fix</span> <a class="issue-link js-issue-link" href="https://github.com/finit-project/finit/issues/432">#432</a>: allow services in `setup` state to be stopped. This fixes <br /> a serious blocker introduced in 4.10 that prevented systems from <br /> being rebooted when any service was in this state <br /> - Fix fallback `SIGKILL` when stopping a service with `SIGTERM` does <br /> not work. This fixes a serious issue with services not responding to <br /> the default `SIGTERM` <br /> - Fix pre/post/ready/cleanup script execution if service has an <br /> optional `env:file` (leading `-`) <br /> - Fix blocked signals for pre/post/ready/cleanup scripts preventing <br /> normal shutdown when a service/sysv is stopped in its setup state <br /> - Fix issue where a pre:script creates a PID file in `/run` cause the <br /> service to move from setup state to running. Any `svc_t` in setup, <br /> teardown, or cleanup state should be ignored in the pidfile plugin</p> <p>Signed-off-by: Joachim Wiberg &lt;[email protected]&gt;</p> github-actions