Finit v4.5-rc5
Pre-release
Pre-release
·
353 commits
to master
since this release
Changes
- Refactor
runpartsand/etc/rc.localto no longer block the main
loop, allowinginitctlcalls to interact with Finit. Issue #356 - Refactor the
runstanza to no longer block the main loop, issue #362 - Allow
suloginwith a user different fromroot, issue #357 - Allow disabling invocation of rescue mode from kernel command line
- Add
initctl -fto force-skip asking Finit for existing services
when creating new services during bootstrap, e.g./etc/rc.local initctl runlevelnow returnsN Sinstead ofN 10in bootstrapinitctl runlevel Nduring bootstrap is now allowed. It changes
the next runlevel to go to when bootstrap has completed. Effectively
overriding therunlevel Nstatement 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
runpartscode has been split into/libexec/finit/runparts - The
runpartscommand now takes two options:sysvandprogress.
The former ensures onlySNNfooandKNNfooscripts 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:,nowarnoptions 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.,udevdshould 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-fsckfixand--enable-fastbootto
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.conffirst 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.orderfor inspection,
/run/finit/exec.ordershows the start order of each process - Fix #372: lost
udevadmcalls due to overloading - Fixed dbus plugin, the function that located
<pidfile> ...in the
dbus/system.confcaused spurious line breaks which led to the
service not being loaded properly - The
runpartsexecutor now skips backup files (foo~) - The
runpartsstanza now properly appendsstartto scripts that
start withS[0-9]+. This has been broken for a very long time.