tag:github.com,2008:https://github.com/finit-project/finit/releasesTags from finit2026-02-27T09:36:23Ztag:github.com,2008:Repository/5778132/4.162026-02-27T09:44:15ZFinit 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., `<!~pid/netd>` 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 `<dev/foo>` 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 <[email protected]></p>github-actionstag:github.com,2008:Repository/5778132/4.16-rc12026-02-24T04:45:02ZFinit 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., `<!~pid/netd>` 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 `<dev/foo>` 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 <[email protected]></p>github-actionstag:github.com,2008:Repository/5778132/4.152026-01-01T15:53:29ZFinit v4.15<p>Finit v4.15 GA</p>
<p>Signed-off-by: Joachim Wiberg <[email protected]></p>github-actionstag:github.com,2008:Repository/5778132/4.15-rc22026-01-01T15:08:55ZFinit v4.15-rc2<p>Finit v4.15-rc2</p>
<p>Signed-off-by: Joachim Wiberg <[email protected]></p>github-actionstag:github.com,2008:Repository/5778132/4.15-rc12025-12-18T06:24:31ZFinit v4.15-rc1<p>Finit v4.15-rc1</p>
<p>Signed-off-by: Joachim Wiberg <[email protected]></p>github-actionstag:github.com,2008:Repository/5778132/4.142025-08-29T15:15:19ZFinit v4.14<p>Finit v4.14 GA</p>
<p>Signed-off-by: Joachim Wiberg <[email protected]></p>github-actionstag:github.com,2008:Repository/5778132/4.132025-08-05T06:03:00ZFinit 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 `"<NUM>"`
<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 `"<NUM>"` in log messages
<br /> - Ensure API socket used by `initctl` is non-blocking (event loop)</p>
<p>Signed-off-by: Joachim Wiberg <[email protected]></p>github-actionstag:github.com,2008:Repository/5778132/4.13-rc12025-07-10T14:56:44ZFinit 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 `"<NUM>"`
<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 `"<NUM>"` in log messages
<br /> - Ensure API socket used by `initctl` is non-blocking (event loop)</p>
<p>Signed-off-by: Joachim Wiberg <[email protected]></p>github-actionstag:github.com,2008:Repository/5778132/4.122025-04-27T22:49:47ZFinit 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 <[email protected]></p>github-actionstag:github.com,2008:Repository/5778132/4.112025-03-27T18:34:10ZFinit 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 <[email protected]></p>github-actions