Finit v4.5-rc5
Pre-release
Pre-release
github-actions
released this
05 Oct 06:28
·
148 commits
to master
since this release
Changes
- Refactor
runparts
and/etc/rc.local
to no longer block the main
loop, allowinginitctl
calls to interact with Finit. Issue #356 - Refactor the
run
stanza to no longer block the main loop, issue #362 - Allow
sulogin
with a user different fromroot
, issue #357 - Allow disabling invocation of rescue mode from kernel command line
- Add
initctl -f
to force-skip asking Finit for existing services
when creating new services during bootstrap, e.g./etc/rc.local
initctl runlevel
now returnsN S
instead ofN 10
in bootstrapinitctl runlevel N
during bootstrap is now allowed. It changes
the next runlevel to go to when bootstrap has completed. Effectively
overriding therunlevel N
statement in/etc/finit.conf
- Improved logging on failure to
execvp()
a run/task/service, now
witherrno
, e.g., "No such file or directory" when the command
is missing from$PATH
- Add support for Bash completion to
initctl
, issue #360 - Handle absolute path to
initctl [enable|disable]
, not supported - Update
finit.conf(5)
man page with the recommended directory
hierarchy in/etc/finit.d/
- The
runparts
code has been split into/libexec/finit/runparts
- The
runparts
command now takes two options:sysv
andprogress
.
The former ensures onlySNNfoo
andKNNfoo
scripts are run. - Add SysV Init Compatibility section to documentation
- Increased MAX path for commands, and arguments: 64 -> 256
- The bundled watchdog daemon no longer tries to log at startup, because
syslog is not available yet, any startup message leak to console - Extend
if:
option with runtime evaluation of conditions. E.g., start
a task onlyif:<run/foo/failure>
(here the run task 'foo' failed) - Document new
if:
,conflict:
,nowarn
options for run/task/service
first introduced in v4.4 - Failure to open fstab should log to console, not just log to
/dev/kmsg
- Rename
/lib/finit/system/*.conf
, added numbered prefix to ensure
proper execution order, e.g.,udevd
should always run first - Plugins and bundled services: dbus, keventd, watchdogd, and runparts,
are now loaded after all services in/lib/finit/system/
. A new
runtime-only path (for inspection) in/run/finit/system/
is used
Fixes
- Fix #227: believed to have been fixed in v4.3, the root cause was
actually that Finit was waiting for a process that was no longer in
the system. The fix is to ask the kernel on process-stop-timeout and
replay the lost PID so that Finit can continue with reboot/shutdown - Fix #358: fix inotify events for
/etc/finit.conf
, improved log
messages and error handling - Fix #361: cgroup move fail if run/task/services start as non-root.
Regression in the v4.4 release cycle while adding support for the
pre:/post:/ready: scripts. Now the latter scripts also properly run
in their correct cgroup - Fix #366: document
fsck.*
kernel command line options and simplify
the configure flags--enable-fsckfix
and--enable-fastboot
to
only adjust the default values for thefsck.*
options. - Fix #371: swap load order of
/lib/finit/system/*
vs/etc/finit.d/*
We must run10-hotplug.conf
first to ensure devices and modules are
up and loaded before the user's run/task/services are called. The order
at bootstrap is now saved in/run/finit/conf.order
for inspection,
/run/finit/exec.order
shows the start order of each process - Fix #372: lost
udevadm
calls due to overloading - Fixed dbus plugin, the function that located
<pidfile> ...
in the
dbus/system.conf
caused spurious line breaks which led to the
service not being loaded properly - The
runparts
executor now skips backup files (foo~
) - The
runparts
stanza now properly appendsstart
to scripts that
start withS[0-9]+
. This has been broken for a very long time.