Finit v1.12
The inetd release.
Changes
- Add support for built-in inetd super server -- launch services on
demand. Supports filtering per interface and custom Inet ports. - Upgrade to libuEv v1.1.0 to better handle error conditions.
- Allow mixed case config directives in
finit.conf - Add support for RFC 868 (rdate) time plugin, start as inetd service.
- Load plugins before parsing
finit.conf, this makes it possible to
extend finit even with configuration commands. E.g., thetime.so
plugin must be loaded for theinetd time/tcp internalservice to be
accepted when parsingfinit.conf. - Slight change in TTY fallback behavior, if no TTY is listed in the
systemfinit.conffirst inspect theconsolesetting and only if
that too is unset fall back to/bin/sh - When falling back to the
consoleTTY or/bin/sh, finit now marks
this fallback as console. Should improve usability in some use cases.
Fixes
- Revert "Use
vfork()instead offork()before exec()" from v1.11. It
turned out to not work so well after all. For instance, launching
TTYs in a background process completely blocked inetd services from
even starting up listening sockets ... proper fork seems to work fine
though. This is the casue for yanking the [1.11] release, below. - Trap segfaults caused by external plugins/callbacks in a sub-process.
This prevents a single programming mistake in by a 3rd party developer
from taking down the entire system. - Fix Coverity CID 56281:
dlopen()resource leak by storing the pointer.
For the time being we do not support unloading plugins. - Set hostname early, so bootstrap processes like syslog can use it.
- Only restart lost daemons when recovering from a SIGSTOP/norespawn.