Skip to content

Finit v4.5-rc5

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions 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, allowing initctl 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 from root, 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 returns N S instead of N 10 in bootstrap
  • initctl runlevel N during bootstrap is now allowed. It changes
    the next runlevel to go to when bootstrap has completed. Effectively
    overriding the runlevel N statement in /etc/finit.conf
  • Improved logging on failure to execvp() a run/task/service, now
    with errno, 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 and progress.
    The former ensures only SNNfoo and KNNfoo 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 only if:<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 the fsck.* options.
  • Fix #371: swap load order of /lib/finit/system/* vs /etc/finit.d/*
    We must run 10-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 appends start to scripts that
    start with S[0-9]+. This has been broken for a very long time.