tag:github.com,2008:https://github.com/finit-project/finit/releasesRelease notes from finit2026-02-27T09:36:23Ztag:github.com,2008:Repository/5778132/4.162026-02-27T09:44:15ZFinit v4.16<h3>Changes</h3>
<ul>
<li>Add <code>initctl switch-root</code> 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</li>
<li>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</li>
<li>Add <code>remain:yes</code> option for run/task oneshot commands, similar to the<br>
systemd <code>RemainAfterExit=yes</code>, by Aaron Andersen</li>
<li>Clear service conditions on <code>initctl reload NAME</code> to ensure dependent<br>
services are properly updated</li>
<li>Run service <code>stop:</code> and <code>reload:</code> scripts as non-blocking processes,<br>
preventing Finit from stalling on long-running helper scripts</li>
<li>Guard shutdown with timer watchdog to detect and debug shutdown hangs</li>
<li>Add <code>~</code> condition prefix to propagate reload from a dependency to the<br>
dependent service. E.g., <code><!~pid/netd></code> means not only a regular<br>
condition, but when <code>netd</code> reloads, restart this service too. Similar<br>
to systemd's directive <code>PropagatesReloadTo=</code>, but declared on the<br>
consumer side. Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2594513998" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/416" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/416/hovercard" href="https://github.com/finit-project/finit/issues/416">#416</a></li>
<li><code>tmpfiles</code>: add support for <code>-E</code> and <code>--exclude-prefix</code> flags<br>
contributed by Aaron Andersen</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3786688861" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/464" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/464/hovercard" href="https://github.com/finit-project/finit/issues/464">#464</a>: invalid user:group examples in cgroups.md</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3800797499" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/466" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/466/hovercard" href="https://github.com/finit-project/finit/pull/466">#466</a>: elogind path for Debian-based distros, by Jackie Liu</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3805449106" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/467" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/467/hovercard" 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</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3935553019" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/475" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/475/hovercard" 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 <code>cond_clear()</code> is normally called, leaving<br>
dependents stuck</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3935560424" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/476" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/476/hovercard" href="https://github.com/finit-project/finit/issues/476">#476</a>: dependents not restarted after SIGHUP reload of service in<br>
dependency chain. Add <code>service_step_all()</code> at end of reload cycle to<br>
guarantee convergence after conditions are reasserted. See also the<br>
new <code>~</code> condition prefix (above) to propagate reload to dependents</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3976578616" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/478" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/478/hovercard" href="https://github.com/finit-project/finit/pull/478">#478</a>: fix <code><dev/foo></code> conditions at boot, conditions that exist<br>
before inotify was set up. Found and fixed by Mattias Walström</li>
<li>Fix reload of SIGHUP-capable services incorrectly disrupting their<br>
dependents. E.g., <code>initctl reload syslogd</code> would stop dbus, dnsmasq,<br>
etc. even though syslogd handles SIGHUP gracefully and its PID persists</li>
<li>Only remove managed pidfiles in service cleanup. For SysV services<br>
with <code>pid:!/path</code>, the pidfile belongs to the service itself and Finit<br>
should not delete it</li>
<li>Silence spurious cgroup warnings for short-lived processes where the<br>
kernel reaps the child before cgroup assignment completes</li>
<li>Fix handling of already-mounted cgroups in <code>cgroup_init()</code>, can occur<br>
after switch_root or in container environments</li>
<li>Improve cgroups documentation clarity, grammar, and examples</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/5778132/4.16-rc12026-02-24T04:45:02ZFinit v4.16-rc1<h3>Changes</h3>
<ul>
<li>Add <code>initctl switch-root</code> 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</li>
<li>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</li>
<li>Add <code>remain:yes</code> option for run/task oneshot commands, similar to the<br>
systemd <code>RemainAfterExit=yes</code>, by Aaron Andersen</li>
<li>Clear service conditions on <code>initctl reload NAME</code> to ensure dependent<br>
services are properly updated</li>
<li>Run service <code>stop:</code> and <code>reload:</code> scripts as non-blocking processes,<br>
preventing Finit from stalling on long-running helper scripts</li>
<li>Guard shutdown with timer watchdog to detect and debug shutdown hangs</li>
<li>Add <code>~</code> condition prefix to propagate reload from a dependency to the<br>
dependent service. E.g., <code><!~pid/netd></code> means not only a regular<br>
condition, but when <code>netd</code> reloads, restart this service too. Similar<br>
to systemd's directive <code>PropagatesReloadTo=</code>, but declared on the<br>
consumer side. Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2594513998" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/416" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/416/hovercard" href="https://github.com/finit-project/finit/issues/416">#416</a></li>
<li><code>tmpfiles</code>: add support for <code>-E</code> and <code>--exclude-prefix</code> flags<br>
contributed by Aaron Andersen</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3786688861" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/464" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/464/hovercard" href="https://github.com/finit-project/finit/issues/464">#464</a>: invalid user:group examples in cgroups.md</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3800797499" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/466" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/466/hovercard" href="https://github.com/finit-project/finit/pull/466">#466</a>: elogind path for Debian-based distros, by Jackie Liu</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3805449106" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/467" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/467/hovercard" 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</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3935553019" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/475" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/475/hovercard" 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 <code>cond_clear()</code> is normally called, leaving<br>
dependents stuck</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3935560424" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/476" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/476/hovercard" href="https://github.com/finit-project/finit/issues/476">#476</a>: dependents not restarted after SIGHUP reload of service in<br>
dependency chain. Add <code>service_step_all()</code> at end of reload cycle to<br>
guarantee convergence after conditions are reasserted. See also the<br>
new <code>~</code> condition prefix (above) to propagate reload to dependents</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3976578616" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/478" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/478/hovercard" href="https://github.com/finit-project/finit/pull/478">#478</a>: fix <code><dev/foo></code> conditions at boot, conditions that exist<br>
before inotify was set up. Found and fixed by Mattias Walström</li>
<li>Fix reload of SIGHUP-capable services incorrectly disrupting their<br>
dependents. E.g., <code>initctl reload syslogd</code> would stop dbus, dnsmasq,<br>
etc. even though syslogd handles SIGHUP gracefully and its PID persists</li>
<li>Only remove managed pidfiles in service cleanup. For SysV services<br>
with <code>pid:!/path</code>, the pidfile belongs to the service itself and Finit<br>
should not delete it</li>
<li>Silence spurious cgroup warnings for short-lived processes where the<br>
kernel reaps the child before cgroup assignment completes</li>
<li>Fix handling of already-mounted cgroups in <code>cgroup_init()</code>, can occur<br>
after switch_root or in container environments</li>
<li>Improve cgroups documentation clarity, grammar, and examples</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/5778132/4.152026-01-01T15:53:29ZFinit v4.15<p>The Finit project now has a new home page: <a href="https://finit-project.github.io" rel="nofollow">https://finit-project.github.io</a></p>
<h3>Changes</h3>
<ul>
<li>Change default reboot to SOC reset from WDT reset, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3685187960" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/460" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/460/hovercard" href="https://github.com/finit-project/finit/issues/460">#460</a></li>
<li>Bump required versions of libite (v2.6.2) and libuev (v2.4.1)</li>
<li>Allow longer service identifiers (<code>:id</code>), up to 64 characters</li>
<li>Allow skipping bootstrap wait (180 sec) with Ctrl-C</li>
<li>Unlock <code>initctl</code> commands start/stop/restart/reload service during bootstrap,<br>
shutdown, and reboot. Also, allow <code>initctl reload</code> in bootstrap. This makes<br>
it possible to start manual:yes type services at botostrap, for example, which<br>
has been a common feature request</li>
<li>Add support for <code>clone3()</code> syscall with atomic cgroup assignment, from Linux<br>
kernel 5.3+. Eliminates race conditions where forked processes (e.g., logger<br>
processes) ended up in wrong cgroups. Falls back to <code>fork()</code> on older kernels</li>
<li>Add support for cgroup delegation, useful for, e.g., container runtimes<br>
creating sub-groups for the container instance's processes</li>
<li>Add cgroup leaf name override: <code>cgroup.system,name:udevd</code> allows using<br>
descriptive names like <code>/system/udevd/</code> instead of filename derived names<br>
like <code>/system/10-hotplug/</code>. Syntax supports combining with other options:<br>
<code>cgroup.system,name:foo,delegate,cpu.max:10000</code></li>
<li>Add support for Linux capabilities, allowing services to run with minimal<br>
required privileges instead of running as root. Uses the modern IAB API<br>
(Inheritable, Ambient, Bounding) from libcap. By Aaron Andersen</li>
<li>Add support for supplementary groups for services. Uses the syntax<br>
<code>@user:group,sup1,sup2</code> to explicitly specify supplementary groups, in<br>
addition to reading group membership from <code>/etc/group</code>. By Aaron Andersen</li>
<li>Add CPU throttled information to <code>initctl</code> output, showing when a service<br>
has been throttled due to reaching its CPU quota</li>
<li>Add memory field to <code>initctl --json</code> status output for cgroup-enabled<br>
services</li>
<li>Default to user and group <code>root</code> (UID 0) for services</li>
<li>Always check that service user and group resolve to valid UID/GID pairs,<br>
otherwise log error and refuse to start service</li>
<li>Hide cursor at boot and shutdown for cleaner visual experience</li>
<li>Rename <code>tty</code> services early from <code>init</code> -> <code>getty</code> even though no getty<br>
process has been started yet. This to aid in boot timing detection using<br>
tools like <code>bootchartd</code> (BusyBox version or bootchart2 project) when Finit<br>
only shows <em>"Please press Enter to activate this console."</em></li>
<li>Services with <code>respawn</code> option (including TTYs) now delay retry on non-zero<br>
exit codes instead of immediate respawn. Prevents busy-loop when service<br>
fails repeatedly, which on some systems may have a crippling effect</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3507034981" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/453" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/453/hovercard" href="https://github.com/finit-project/finit/pull/453">#453</a>: RTC plugin fixes by Ming Liu, Atlas Copco</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3595481021" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/455" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/455/hovercard" href="https://github.com/finit-project/finit/issues/455">#455</a>: ANSI escape sequences logged by tools using glib logging,<br>
caused by use of PTY instead of pipe for stdout/stderr redirection</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3755679044" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/462" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/462/hovercard" href="https://github.com/finit-project/finit/issues/462">#462</a>: <code>/dev/pts</code> mounted with wrong mode (400 instead of 620), causing<br>
permission issues with pseudo-terminals</li>
<li>getty: fix terminal scrollback issues after login on console TTY. Mouse<br>
scroll wheel and Shift+PgUp/PgDn sometimes would not work properly</li>
<li>Fix flickering and artifacts in <code>initctl top</code></li>
<li>Fix file descriptor leak in <code>initctl top</code></li>
<li>Fix incorrect "max" limit reporting in <code>initctl [top|cgroup|--json]</code> output<br>
for child cgroups. Resolves effective limits by walking the cgroup hierarchy</li>
<li>Fix issue with running Finit under <code>bootchartd</code> (bootchart2 project), always<br>
set <code>PATH</code> and <code>SHELL</code> envs early, before attempting to mount <code>/proc</code> et al</li>
<li>Always reset ownership and permissions on TTY device nodes before launching getty</li>
<li>Ensure mount/unmount skips <code>noauto</code> entries</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/5778132/4.15-rc22026-01-01T15:08:55ZFinit v4.15-rc2<p>The Finit project now has a new home page: <a href="https://finit-project.github.io" rel="nofollow">https://finit-project.github.io</a></p>
<h3>Changes</h3>
<ul>
<li>Change default reboot to SOC reset from WDT reset, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3685187960" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/460" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/460/hovercard" href="https://github.com/finit-project/finit/issues/460">#460</a></li>
<li>Bump required versions of libite (v2.6.2) and libuev (v2.4.1)</li>
<li>Allow longer service identifiers (<code>:id</code>), up to 64 characters</li>
<li>Allow skipping bootstrap wait (180 sec) with Ctrl-C</li>
<li>Unlock <code>initctl</code> commands start/stop/restart/reload service during bootstrap,<br>
shutdown, and reboot. Also, allow <code>initctl reload</code> in bootstrap. This makes<br>
it possible to start manual:yes type services at botostrap, for example, which<br>
has been a common feature request</li>
<li>Add support for <code>clone3()</code> syscall with atomic cgroup assignment, from Linux<br>
kernel 5.3+. Eliminates race conditions where forked processes (e.g., logger<br>
processes) ended up in wrong cgroups. Falls back to <code>fork()</code> on older kernels</li>
<li>Add support for cgroup delegation, useful for, e.g., container runtimes<br>
creating sub-groups for the container instance's processes</li>
<li>Add cgroup leaf name override: <code>cgroup.system,name:udevd</code> allows using<br>
descriptive names like <code>/system/udevd/</code> instead of filename derived names<br>
like <code>/system/10-hotplug/</code>. Syntax supports combining with other options:<br>
<code>cgroup.system,name:foo,delegate,cpu.max:10000</code></li>
<li>Add support for Linux capabilities, allowing services to run with minimal<br>
required privileges instead of running as root. Uses the modern IAB API<br>
(Inheritable, Ambient, Bounding) from libcap. By Aaron Andersen</li>
<li>Add support for supplementary groups for services. Uses the syntax<br>
<code>@user:group,sup1,sup2</code> to explicitly specify supplementary groups, in<br>
addition to reading group membership from <code>/etc/group</code>. By Aaron Andersen</li>
<li>Add CPU throttled information to <code>initctl</code> output, showing when a service<br>
has been throttled due to reaching its CPU quota</li>
<li>Add memory field to <code>initctl --json</code> status output for cgroup-enabled<br>
services</li>
<li>Default to user and group <code>root</code> (UID 0) for services</li>
<li>Always check that service user and group resolve to valid UID/GID pairs,<br>
otherwise log error and refuse to start service</li>
<li>Hide cursor at boot and shutdown for cleaner visual experience</li>
<li>Rename <code>tty</code> services early from <code>init</code> -> <code>getty</code> even though no getty<br>
process has been started yet. This to aid in boot timing detection using<br>
tools like <code>bootchartd</code> (BusyBox version or bootchart2 project) when Finit<br>
only shows <em>"Please press Enter to activate this console."</em></li>
<li>Services with <code>respawn</code> option (including TTYs) now delay retry on non-zero<br>
exit codes instead of immediate respawn. Prevents busy-loop when service<br>
fails repeatedly, which on some systems may have a crippling effect</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3507034981" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/453" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/453/hovercard" href="https://github.com/finit-project/finit/pull/453">#453</a>: RTC plugin fixes by Ming Liu, Atlas Copco</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3595481021" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/455" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/455/hovercard" href="https://github.com/finit-project/finit/issues/455">#455</a>: ANSI escape sequences logged by tools using glib logging,<br>
caused by use of PTY instead of pipe for stdout/stderr redirection</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3755679044" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/462" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/462/hovercard" href="https://github.com/finit-project/finit/issues/462">#462</a>: <code>/dev/pts</code> mounted with wrong mode (400 instead of 620), causing<br>
permission issues with pseudo-terminals</li>
<li>getty: fix terminal scrollback issues after login on console TTY. Mouse<br>
scroll wheel and Shift+PgUp/PgDn sometimes would not work properly</li>
<li>Fix flickering and artifacts in <code>initctl top</code></li>
<li>Fix file descriptor leak in <code>initctl top</code></li>
<li>Fix incorrect "max" limit reporting in <code>initctl [top|cgroup|--json]</code> output<br>
for child cgroups. Resolves effective limits by walking the cgroup hierarchy</li>
<li>Fix issue with running Finit under <code>bootchartd</code> (bootchart2 project), always<br>
set <code>PATH</code> and <code>SHELL</code> envs early, before attempting to mount <code>/proc</code> et al</li>
<li>Always reset ownership and permissions on TTY device nodes before launching getty</li>
<li>Ensure mount/unmount skips <code>noauto</code> entries</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/5778132/4.15-rc12025-12-18T06:24:31ZFinit v4.15-rc1<h3>Changes</h3>
<ul>
<li>Change default reboot to SOC reset from WDT reset, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3685187960" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/460" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/460/hovercard" href="https://github.com/finit-project/finit/issues/460">#460</a></li>
<li>Bump required versions of libite (v2.6.2) and libuev (v2.4.1)</li>
<li>Allow longer service identifiers (<code>:id</code>), up to 64 characters</li>
<li>Allow skipping bootstrap wait (180 sec) with Ctrl-C</li>
<li>Unlock <code>initctl</code> commands start/stop/restart/reload service during bootstrap,<br>
shutdown, and reboot. Also, allow <code>initctl reload</code> in bootstrap. This makes<br>
it possible to start manual:yes type services at botostrap, for example, which<br>
has been a common feature request</li>
<li>Add support for <code>clone3()</code> syscall with atomic cgroup assignment, from Linux<br>
kernel 5.3+. Eliminates race conditions where forked processes (e.g., logger<br>
processes) ended up in wrong cgroups. Falls back to <code>fork()</code> on older kernels</li>
<li>Add support for cgroup delegation, useful for, e.g., container runtimes<br>
creating sub-groups for the container instance's processes</li>
<li>Add cgroup leaf name override: <code>cgroup.system,name:udevd</code> allows using<br>
descriptive names like <code>/system/udevd/</code> instead of filename derived names<br>
like <code>/system/10-hotplug/</code>. Syntax supports combining with other options:<br>
<code>cgroup.system,name:foo,delegate,cpu.max:10000</code></li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3507034981" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/453" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/453/hovercard" href="https://github.com/finit-project/finit/pull/453">#453</a>: RTC plugin fixes by Ming Liu, Atlas Copco</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3595481021" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/455" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/455/hovercard" href="https://github.com/finit-project/finit/issues/455">#455</a>: ANSI escape sequences logged by tools using glib logging,<br>
caused by use of PTY instead of pipe for stdout/stderr redirection</li>
<li>getty: fix terminal scrollback issues after login on console TTY. Mouse<br>
scroll wheel and Shift+PgUp/PgDn sometimes would not work properly</li>
<li>Fix flickering and artifacts in <code>initctl top</code></li>
<li>Fix file descriptor leak in <code>initctl top</code></li>
<li>Fix incorrect "max" limit reporting in <code>initctl [top|cgroup|--json]</code> output<br>
for child cgroups. Resolves effective limits by walking the cgroup hierarchy</li>
<li>Ensure mount/unmount skips <code>noauto</code> entries</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/5778132/4.142025-08-29T15:15:19ZFinit v4.14<p>Minor bug fix release.</p>
<h3>Changes</h3>
<ul>
<li>Add exit status/signal info when a process dies, by Mattias Berthel</li>
<li>Extend <code>service kill:SEC</code> to support up to 300 sec.</li>
<li>Extend <code>norespawn</code> debug to cover <code>service_retry()</code></li>
<li>Build <em>without</em> libsystemd replacement by default</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3251536168" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/449" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/449/hovercard" href="https://github.com/finit-project/finit/issues/449">#449</a>: ALSA plugin fail-to-build-from-source</li>
<li>Fix <code>sysv</code> stop command process environment, should be same as start</li>
<li>Fix state machine ordering issue: enter new config generation <em>after</em><br>
services disabled in previous generation have been stopped</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/5778132/4.132025-08-05T06:03:00ZFinit v4.13<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>This release introduce a bare bones <code>libsystemd</code> replacement with an<br>
<code><systemd/sd-daemon.h></code> include file. Other systemd features are the<br>
<code>reload:script</code> and <code>stop:script</code>, mimicking ExecReload and ExecStop.</p>
</div>
<h3>Changes</h3>
<ul>
<li><code>initctl signal</code> command has been renamed to <code>initctl kill</code></li>
<li>Drop xz tarballs from distribution, gzip is good enough</li>
<li>New <code>tmpfiles</code> stand-alone program, refactored from the existing<br>
tmpfiles.d support in Finit, by Aaron Andersen, PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3088684442" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/439" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/439/hovercard" href="https://github.com/finit-project/finit/pull/439">#439</a>
<ul>
<li><code>--remove</code> command runs only the <code>r</code> and <code>R</code> rules</li>
<li><code>--create</code> is used for all other cases (bootstrap)</li>
</ul>
</li>
<li>All <code>notify:systemd</code> services now log with <code>logit</code> by default. This<br>
because it supports systemd style log severity, leading <code>"<NUM>"</code></li>
<li>Support for quoted arguments to run/task/service options, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3123193239" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/441" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/441/hovercard" href="https://github.com/finit-project/finit/issues/441">#441</a></li>
<li>Clear command line arguments after bootstrap, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3160536070" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/442" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/442/hovercard" href="https://github.com/finit-project/finit/issues/442">#442</a></li>
<li>Support for <code>stop:'script [args]'</code> to stop a sysv/service instead of<br>
the common <code>foo-stop-start.sh stop</code>, or <code>SIGTERM</code>, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2548444958" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/412" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/412/hovercard" href="https://github.com/finit-project/finit/issues/412">#412</a></li>
<li>Support for <code>reload:'script [args]'</code> to trigger a configuration<br>
reload in a service, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3196266972" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/446" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/446/hovercard" href="https://github.com/finit-project/finit/issues/446">#446</a></li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3037934400" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/437" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/437/hovercard" href="https://github.com/finit-project/finit/issues/437">#437</a>: buffer overflow in <code>initctl status</code></li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3082298767" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/438" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/438/hovercard" href="https://github.com/finit-project/finit/issues/438">#438</a>: support very long command lines in <code>initctl ps/top</code></li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3112085920" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/440" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/440/hovercard" href="https://github.com/finit-project/finit/issues/440">#440</a>: broken systemd and s6 readiness notification</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3182649201" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/443" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/443/hovercard" href="https://github.com/finit-project/finit/pull/443">#443</a>: build warnings, by Ming Liu, Atlas Copco</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3194159820" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/444" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/444/hovercard" href="https://github.com/finit-project/finit/pull/444">#444</a>: handle loooooong arguments, by Aaron Andersen</li>
<li>Fix service's redirected stdout/stderr log priority in fallback mode,<br>
when neither <code>logger</code> or <code>logit</code> is available. This fix also checks<br>
for systemd style log severity, leading <code>"<NUM>"</code> in log messages</li>
<li>Ensure API socket used by <code>initctl</code> is non-blocking (event loop)</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/5778132/4.13-rc12025-07-10T14:56:44ZFinit v4.13-rc1<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>This release introduce a bare bones <code>libsystemd</code> replacement with an<br>
<code><systemd/sd-daemon>.h</code> include file. Other systemd features are the<br>
<code>reload:script</code> and <code>stop:script</code>, mimicking ExecReload and ExecStop.</p>
</div>
<h3>Changes</h3>
<ul>
<li>Drop xz tarballs from distribution, gzip is good enough</li>
<li>New <code>tmpfiles</code> stand-alone program, refactored from the existing<br>
tmpfiles.d support in Finit, by Aaron Andersen, PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3088684442" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/439" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/439/hovercard" href="https://github.com/finit-project/finit/pull/439">#439</a>
<ul>
<li><code>--remove</code> command runs only the <code>r</code> and <code>R</code> rules</li>
<li><code>--create</code> is used for all other cases (bootstrap)</li>
</ul>
</li>
<li>All <code>notify:systemd</code> services now log with <code>logit</code> by default. This<br>
because it supports systemd style log severity, leading <code>"<NUM>"</code></li>
<li>Support for quoted arguments to run/task/service options, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3123193239" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/441" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/441/hovercard" href="https://github.com/finit-project/finit/issues/441">#441</a></li>
<li>Clear command line arguments after bootstrap, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3160536070" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/442" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/442/hovercard" href="https://github.com/finit-project/finit/issues/442">#442</a></li>
<li>Support for <code>stop:'script [args]'</code> to stop a sysv/service instead of<br>
the common <code>foo-stop-start.sh stop</code>, or <code>SIGTERM</code>, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2548444958" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/412" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/412/hovercard" href="https://github.com/finit-project/finit/issues/412">#412</a></li>
<li>Support for <code>reload:'script [args]'</code> to trigger a configuration<br>
reload in a service, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3196266972" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/446" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/446/hovercard" href="https://github.com/finit-project/finit/issues/446">#446</a></li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3037934400" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/437" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/437/hovercard" href="https://github.com/finit-project/finit/issues/437">#437</a>: buffer overflow in <code>initctl status</code></li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3082298767" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/438" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/438/hovercard" href="https://github.com/finit-project/finit/issues/438">#438</a>: support very long command lines in <code>initctl ps/top</code></li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3112085920" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/440" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/440/hovercard" href="https://github.com/finit-project/finit/issues/440">#440</a>: broken systemd and s6 readiness notification</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3182649201" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/443" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/443/hovercard" href="https://github.com/finit-project/finit/pull/443">#443</a>: build warnings, by Ming Liu, Atlas Copco</li>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3194159820" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/444" data-hovercard-type="pull_request" data-hovercard-url="/finit-project/finit/pull/444/hovercard" href="https://github.com/finit-project/finit/pull/444">#444</a>: handle loooooong arguments, by Aaron Andersen</li>
<li>Fix service's redirected stdout/stderr log priority in fallback mode,<br>
when neither <code>logger</code> or <code>logit</code> is available. This fix also checks<br>
for systemd style log severity, leading <code>"<NUM>"</code> in log messages</li>
<li>Ensure API socket used by <code>initctl</code> is non-blocking (event loop)</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/5778132/4.122025-04-27T22:49:47ZFinit v4.12<h3>Changes</h3>
<ul>
<li>Improve notify:s6 readiness compatibility, by Aaron Andersen</li>
<li>Update <code>runparts</code> usage text</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Fix variable overloading in urandom plugin</li>
<li>Fix buffer overwrite in urandom plugin, reported by Aaron Andersen</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/5778132/4.112025-03-27T18:34:10ZFinit v4.11<h3>Changes</h3>
<ul>
<li>Update documentation regarding transition from runlevel S to 2, how<br>
run/tasks must "complete" before Finit can move to the next runlevel</li>
<li>Improve argument handling in bundled getty when launching login</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2924944486" data-permission-text="Title is private" data-url="https://github.com/finit-project/finit/issues/432" data-hovercard-type="issue" data-hovercard-url="/finit-project/finit/issues/432/hovercard" href="https://github.com/finit-project/finit/issues/432">#432</a>: allow services in <code>setup</code> 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</li>
<li>Fix fallback <code>SIGKILL</code> when stopping a service with <code>SIGTERM</code> does<br>
not work. This fixes a serious issue with services not responding to<br>
the default <code>SIGTERM</code></li>
<li>Fix pre/post/ready/cleanup script execution if service has an<br>
optional <code>env:file</code> (leading <code>-</code>)</li>
<li>Fix blocked signals for pre/post/ready/cleanup scripts preventing<br>
normal shutdown when a service/sysv is stopped in its setup state</li>
<li>Fix issue where a pre:script creates a PID file in <code>/run</code> cause the<br>
service to move from setup state to running. Any <code>svc_t</code> in setup,<br>
teardown, or cleanup state should be ignored in the pidfile plugin</li>
</ul>github-actions[bot]