Finit v3.1-rc1
Pre-release
Pre-release
Finit v3.1 require libuEv v2.1.0, or later, and libite v2.0.1, or later.
Changes
- Support for
rlimitper service/run/task/inetd/tty, issue #45 - Support for auto-detecting serial console using Linux SysFS, the new
tty @consoleeliminates the need to keep track of different console devices across embedded platforms:/dev/ttyS0,/dev/ttyAMA0, etc. - Support for calling run/tasks on Finit internal HOOK points, issue #18
- Removed support for long-since deprecated
console DEVsetting - Cosmetic change to login, pressing enter at the
Press enter to ...prompt will now replace that line with the login issue text - Calling
initctlwithout any arguments or options now defaults to show status of all enabled services, and run/task/inetd jobs - Cosmetic change to boot messages, removed
Loading plugins ..., start of inetd services, andLoading configuration .... No end user knows what those plugins and configurations are, i.e. internal state+config - Change kernel WDT timeout (3 --> 30 sec) for built-in watchdog daemon
- Handle
/etc/OverlayFS, reload /etc/finit.d/*.conf aftermount -a - initctl: Add support for printing previous runlevel
- initctl: Support short forms of all commands
- initctl: Support for
initctl touch <CONF>to be used withreload - initctl: Improved output of
initctl show <SVC> - Support reloading
/etc/finit.conf. The main finit.conf file previously did not support reloading at runtime, as of v3.1 all configuration directives supported in/etc/finit.d/*.confare now supported in/etc/finit.conf - Change
.confdependency + reload handling. Finit no longer relies on mtime of.conffiles, instead an inotify handler tracks file changes for time insensitive dependency tracking - Change condition handling to not rely on mtime but a generation id.
Fixes
- Reset TTY before restarting it. A program may manipulate the TTY in various ways before the user logs out, Finit needs to reset the TTY to a sane state before restarting it. Issue #84
- On .conf parse errors, do not default to set TTY speed 38400, reuse current TTY speed instead
- Fix run/tasks, must be guaranteed to run once per declared runlevel. All run/tasks on
[S]with a condition<...>failed to run. Finit now tracks run/tasks more carefully, waiting for them to finish before
switching to the configured runlevel at boot. Issue #86 - Allow inetd services to be registered with a unique ID, e.g.
:161, issue #87. Found by Westermo - inetd: drop UDP packets from blocked interfaces, issue #88
- Handle obscure inter-plugin dependency issue by calling the netlink plugin before the pidfile plugin on
HOOK_SVC_RECONFevents - Handle event loop failure modes, issue found by Westermo
- Handle API socket errors more gracefully, restart socket
- Fix regression in condition handling, reconf condition must be kept as a reference point to previous reconfiguration, or bootstrap.
- Fix nasty race condition with internal service stop, abort kill if the service has already terminated, otherwise we may do
kill(0, SIGKILL) - Fix reconfiguration issue with (very quick) systems that don't have highres timers
- Fix formatting of runlevel string in
initctl show - Allow running
initctlwithSTDOUTredirected - Fix regression in
initctl start/stop <ID>, using name worked not id - Fix error handling in
initctl start/stopwithout any argument - Fix issue #81 properly, remove use of SYSV shm IPC completely. Finit now use the API socket for all communication between PID 1 and initctl
- Fix segfault on x86_64 when started with kernel cmdline
--debug