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
rlimit
per service/run/task/inetd/tty, issue #45 - Support for auto-detecting serial console using Linux SysFS, the new
tty @console
eliminates 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 DEV
setting - Cosmetic change to login, pressing enter at the
Press enter to ...
prompt will now replace that line with the login issue text - Calling
initctl
without 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/*.conf
are now supported in/etc/finit.conf
- Change
.conf
dependency + reload handling. Finit no longer relies on mtime of.conf
files, 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_RECONF
events - 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
initctl
withSTDOUT
redirected - Fix regression in
initctl start/stop <ID>
, using name worked not id - Fix error handling in
initctl start/stop
without 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