Bot releases are hidden (Show)
Published by troglobit over 3 years ago
Bug fix release. Also disables handlers for SIGINT
and SIGPWR
, a new set of sys
conditions are instead generated which can be used to trigger external programs.
kill -USR1 1
)contrib/debian/install.sh
sets up a Grub boot entry for finit. We now modify the $SUPPORTED_INITS variable in 10_linux
SIGINT
from kernel to be able to perform a proper reboot. There is no default command for this, you need to set up a task that triggers on <sys/key/ctrlaltdel>
to issue initctl reboot
<sys/pwr/ac>
condition to Finit. keventd is currently only responsible for monitoring /sys/class/power_supply
for changes to active AC mains power online status. Enable keventd with configure --with-keventd
SIGPWR
to PID 1. Finit no longer redirects this to SIGUSR1
(poweroff). There is no default command for this, you need to set up a task that triggers on <sys/pwr/fail>
to issue initctl poweroff
IUTF8
on input/bin/login
is not found, Finit now tries sulogin
before it falls back to an unauthenticated /bin/sh
/dev/console
\n
, in addition to \r
, in "Please press Enter" prompt before starting getty/proc/cmdline
for its options. Instead all options are by default now read from argv[]
, like a normal program, this is also what the kernel does by default. Please note, this may not work if your systems boots with an initramfs (ymmv), for such cases, see configure --enable-kernel-cmdline
rtc.so
, urandom.so
, you may also want to disable hotplug.so
. They are all enabled by default, as in Finit 4.0, but may be moved to external tools or entries in finit.conf
in Finit 5.0PRETTY_NAME
from /etc/os-release
to use as heading in progress output, unless --with-heading=GREET
is used.Stricter interface name validation in netlink plugin, modeled after the kernel. Suggested by Coverity Scan
Fix problem of re-registering a service as a task. Previously, if a fundamental change, like type, was made to an active service/run/task it did not take. Only possible workaround was to remove from config
initctl: drop warning when removing a non-existing usr condition
initctl: drop confusing errno 0
when timing out waiting for reply
Ensure services in plugins and from Finit main belong to a cgroup
Ensure init top-level cgroup remains a leaf group
Fix tty parse error for detecting use of external getty
Fix default name:
and :ID
for tty's, e.g. ttyS0
now gives tty:S0
as expected. This was default for built-in getty already
Fix max username (32 chars) in bundled Finit getty
The contrib/*/install.sh
scripts failed to run from tarball
Finit no longer forcibly mounts; /dev
, /proc
, or /sys
, instead it checks first if they are already mounted (devtmpfs or container)
Fix /etc/fstab
parser to properly check for 'ro' to not remount the root filesystem at boot. The wrong field was read, so a root mounted by an initramfs, or by lxc for a container, had their root remounted
Fix SIGCHLD handler, waitpd()
may be interrupted by a signal
Reset starting
flag of services being stopped. When a service is started and then stopped before it has created its pid file, it could be left forever in the stopping state, unless we reset the starting flag.
Fix #170: detect loss of default route when interfaces go down. This emulates the missing kernel netlink message to remove the condition net/default/route to allow stopping dependent services
Fix #171: restore automatic mount of /dev/shm
, /dev/pts
, /run
and /tmp
, unless mounted already by /etc/fstab
. This is what most desktop systems expect PID 1 to do. Here we also make sure to mount /run/lock
as a tmpfs as well, with write perms for regular users, this prevents regular users from filling up /run
and causing DoS.
Fix #173: netlink plugin runs out of socket buffer space;
finit[1]: nl_callback():recv(): No buffer space available
Fixed by adding support for resync with kernel on ENOBUFS
. See netlink(7) for details. As a spin-off the plugin now supports any number of interfaces and routes on a system. On resync, the following message is now logged, as a warning:
finit[1]: nl_callback():busy system, resynchronizing with kernel.
Fix #174: loss of log messages using combo of prio and facility, e.g., logit(LOG_CONSOLE | LOG_NOTICE, ...)
, by Jacques de Laval, Westermo
Fix #175: ensure Finit does not acquire a controlling TTY when checking if a device is a TTY before starting a getty. This fixes an old bug where Ctrl-C after logout from a shell could cause PID 1 to get SIGINT, which in turn could lead to a system reboot
Published by troglobit over 3 years ago
Bug fix release for Debian and buildroot based containers. Also disables handlers for SIGINT
and SIGPWR
, a new set of sys
conditions are instead generated which can be used to trigger external programs.
kill -USR1 1
)contrib/debian/install.sh
sets up a Grub boot entry for finit. We now modify the $SUPPORTED_INITS variable in 10_linux
SIGINT
from kernel to be able to perform a proper reboot.<sys/key/ctrlaltdel>
to issue initctl reboot
<sys/pwr/ac>
condition to Finit. keventd is currently only responsible for monitoring /sys/class/power_supply
for changes to active AC mains power online status. Enable keventd with configure --with-keventd
SIGPWR
to PID 1. Finit no longer redirects this to SIGUSR1
(poweroff). There is no default command for this, you need to set up a task that triggers on <sys/pwr/fail>
to issue initctl poweroff
IUTF8
on input/bin/login
is not found, Finit now tries sulogin
before it falls back to an unauthenticated /bin/sh
/dev/console
/proc/cmdline
for its options. Instead all options are by default now read from argv[]
, like a normal program, this is also what the kernel does by default. Please note, this may not work if your systems boots with an initramfs (ymmv), for such cases, see configure --enable-kernel-cmdline
rtc.so
, urandom.so
, you may also want to disable hotplug.so
. They are all enabled by default, as in Finit 4.0, but may be moved to external tools or entries in finit.conf
in Finit 5.0Stricter interface name validation in netlink plugin, modeled after the kernel. Suggested by Coverity Scan
Fix problem of re-registering a service as a task. Previously, if a fundamental change, like type, was made to an active service/run/task it did not take. Only possible workaround was to remove from config
initctl: drop warning when removing a non-existing usr condition
initctl: drop confusing errno 0
when timing out waiting for reply
Ensure services in plugins and from Finit main belong to a cgroup
Ensure init top-level cgroup remains a leaf group
Fix tty parse error for detecting use of external getty
Fix default name:
and :ID
for tty's, e.g. ttyS0
now gives tty:S0
as expected. This was default for built-in getty already
Fix max username (32 chars) in bundled Finit getty
The contrib/*/install.sh
scripts failed to run from tarball
Finit no longer forcibly mounts; /dev
, /proc
, or /sys
, instead it checks first if they are already mounted (devtmpfs or container)
Fix /etc/fstab
parser to properly check for 'ro' to not remount the root filesystem at boot. The wrong field was read, so a root mounted by an initramfs, or by lxc for a container, had their root remounted
Fix #170: detect loss of default route when interfaces go down. This emulates the missing kernel netlink message to remove the condition net/default/route to allow stopping dependent services
Fix #171: restore automatic mount of /dev/shm
, /dev/pts
, /run
and /tmp
, unless mounted already by /etc/fstab
. This is what most desktop systems expect PID 1 to do. Here we also make sure to mount /run/lock
as a tmpfs as well, with write perms for regular users, this prevents regular users from filling up /run
and causing DoS.
Fix #173: netlink plugin runs out of socket buffer space;
finit[1]: nl_callback():recv(): No buffer space available
Fixed by adding support for resync with kernel on ENOBUFS
. See netlink(7) for details. As a spin-off the plugin now supports any number of interfaces and routes on a system. On resync, the following message is now logged, as a warning:
finit[1]: nl_callback():busy system, resynchronizing with kernel.
Fix #174: loss of log messages using combo of prio and facility, e.g., logit(LOG_CONSOLE | LOG_NOTICE, ...)
, by Jacques de Laval, Westermo
Fix #175: ensure Finit does not acquire a controlling TTY when checking if a device is a TTY before starting a getty. This fixes an old bug where Ctrl-C after logout from a shell could cause PID 1 to get SIGINT, which in turn could lead to a system reboot
Published by troglobit over 3 years ago
Bug fix release.
kill -USR1 1
)contrib/debian/install.sh
sets up a Grub boot entry for finit. We now modify the $SUPPORTED_INITS variable in 10_linux
contrib/*/install.sh
scripts failed to run from tarball/dev/shm
, /dev/pts
, /run
and /tmp
, unless mounted already by /etc/fstab
. This is what mostPublished by troglobit over 3 years ago
This release became v4.0, and not v3.2, because of incompatible changes to service conditions. There are other significant changes as well, so make sure to read the whole change log when upgrading.
reboot
tool has been replaced with a symlink to initctl
, like its siblings: halt, shutdown, poweroff, and suspend. Calling reboot
& C:o now defaults to the corresponding initctl cmd
with a fallback to sending signals as per traditional SysV init. The -f
(force) flag remains, where reboot(2)
is called directlyinictl cond set|clear COND
have changed completely. Constrained to a flat <usr/...>
namespace and automatically activated by a new usr.so
plugin that checks services for usr condition changesconfigure
script changes, i.e., no guessing --prefix
and other paths. Also, many options have been changed, renamed, or flipped defaults, or even dropped altogether. There are examples in the documentation and the contrib/
section<svc/path/to/foo>
to <pid/foo:id>
. Not only does this give simpler internal semantics, it hopefully also makes it clear that one service's pid:!foo
pidfile is another service's <pid/foo>
condition, issue #143initctl [top|ps|cgroup]
commands to inspect runtime statemain()
function to be able to start the event loop earlier. This also facilitated factoring out functionality previously hard-coded in Finit, e.g., starting the bundled watchdogd, various distro packed udevd and other hotplugging toolssuslogin
. Exiting rescue mode now brings up the system as a normal boot, as one expectssysv
start/stop scripts as well as monitoring forking services, stared using sysv
or service
stanzakill:DELAY
, default 3 sec.halt:SIGNAL
, default SIGTERMpre:script
and post:script
, allows for setup and teardown/cleanup before and after a service runs, issue #129env:file
in /etc/default/foo
or /etc/conf.d/foo
, see the contrib section for examples that utilize this feature. Variables expanded from env files, and the env files themselves, are tracked for changes to see if a service .conf file is "dirty" and needs restart on initctl reload
pid:!/path/to/foo.pid
, useful with new sysv
or service
which fork to background$PATH
--disable-doc
and --disable-contrib
to speed up builds and work around issue with massively parallel builds@console
also for external gettynotty
option to built-in getty, for board bring-uprescue
option to built-in getty, for rescue shells-b
, batch mode, for non-interactive use to initctl
/dev/
if mdev is also available$SHELL
, like $PATH
, to a sane default value, needed by BusyBox*.conf
files after running /etc/rc.local
or run-parts. Use initctl reload
instead.initctl
without an argument or option now defaults to list servicessvc_t
and not PIDHOOK_SVC_START
and HOOK_SVC_LOST
, caused more problems than they were worth. Users are encouraged to use accounting insteadsvc_t
until any SIGKILL
timer has elapseduev_init1()
to reduce event cache so that the kernel can invalidate deleted events before enqueing to userspacehwclock.so
plugin to rtc.so
since it now is stand-alone from the hwclock
tool. Note: the kernel can also be set to load and store RTC to/from system clock at boot/halt as well, issue #110/sys/devices/*
/etc/modules-load.d/
by Robert Andersson, Atlas Copconame:foo
support for services, by Robert Andersson, Atlas Copcomanual:yes
support for services, by Robert Andersson, Atlas Copcolog:console
support for services, by Robert Andersson, Atlas Copco:ID
as a string, by Jonas Johansson, Westermoinitctl reload
, when a service configuration has changed. Disabled by default, but can be enabled with ./configure --enable-auto-reload
ptxmode=0666
console
as alias for @console
in tty stanzas--enable-rw-roots
configure option, use rw
for your /
partition in /etc/fstab
instead to trigger remount at boot:ID
optional, use NULL/zero internally this allows ...name:foo
syntax, creates conditions w/o a path, and ...:ID
qualifier to conditions if set for a service/run/finit.sock
to /run/finit/socket
officially only supported for use by the initctl
toolSOCK_SEQPACKET
instead of SOCK_STREAM
./etc/network/interfaces
, which has include statements. No more native ifup
of individual interfaces,ifup -a
, or ifdown -a
, delegating all details to the operating system. Also, this is now done in the background, by popular request/var/run
does not yet exist (symlink to /run
). Added compat layer for access@console
resolves to >1 TTY,/var/run
stdin
to /dev/null
for services by defaultnanosleep()
to achieve "signal safe" sleep. Fixed by Jacques de Laval, Westermologit
processes when parent diesrc.local
. Fixed by Jacques de Laval, Westermo/bin/sh -c foo
just like the standard run-parts tool. Found by Magnus Malm, Westermoinitctl [start | restart]
, should behave the same for services that have crashed. Found by Mattias Walström, WestermoSIGPWR
like SIGSUR2
, i.e., power off the systemtzset()
on initctl reload
to activate system timezone changes (for logging)Published by troglobit over 3 years ago
This is a pre-release, for internal testing at Westermo at the moment. Version 4.0 replaces the previously planned 3.2 because of major changes, for instance; removal of the built-in inetd, incompatible changes to kernel command options and configure script. See the changelog for more detailed information. A fully up-to-date list of changes is expected for the GA release.
Published by troglobit over 3 years ago
This is a pre-release, for internal testing at Westermo at the moment. Version 4.0 replaces the previously planned 3.2 because of major changes, for instance; removal of the built-in inetd, incompatible changes to kernel command options and configure script. See the changelog for more detailed information. A fully up-to-date list of changes is expected for the GA release.
Published by troglobit over 3 years ago
This is a pre-release, for internal testing at Westermo at the moment. Version 4.0 replaces the previously planned 3.2 because of major changes, for instance; removal of the built-in inetd, incompatible changes to kernel command options and configure script. See the changelog for more detailed information. A fully up-to-date list of changes is expected for the GA release.
Published by troglobit over 3 years ago
This is a pre-release, for internal testing at Westermo at the moment. Version 4.0 replaces the previously planned 3.2 because of major changes, for instance; removal of the built-in inetd, incompatible changes to kernel command options and configure script. See the changelog for more detailed information. A fully up-to-date list of changes is expected for the GA release.
Published by troglobit over 4 years ago
Fixes to condition handling and changes to condition names when :ID is set.
See 9d9b6b5 for a summary.
Published by troglobit over 4 years ago
Bug fix release, but also cgroups and a new progress!
https://twitter.com/b0rk/status/1214341831049252870?s=20
sysv
start/stop scripts as well as monitoring forking services, stared using sysv
or service
stanzakill:DELAY
, default 3 sec.halt:SIGNAL
, default SIGTERMpid:!/path/to/foo.pid
, useful with new sysv
or service
which fork to background$PATH
--disable-docs
and --disable-contrib
to speed up builds and work around issue with massively parallel builds@console
also for external getty-b
, batch mode, for non-interactive use to initctl
/dev/
if mdev is also available$SHELL
, like $PATH
, to a sane default value, needed by BusyBox*.conf
files after running /etc/rc.local
or run-parts. Use initctl reload
instead.initctl
without an argument or option now defaults to list servicessvc_t
and not PIDHOOK_SVC_START
and HOOK_SVC_LOST
, caused more problems than they were worth. Users are encouraged to use accounting insteadsvc_t
until any SIGKILL
timer has elapseduev_init1()
to reduce event cache so that the kernel can invalidate deleted events before enqueing to userspacehwclock.so
plugin to rtc.so
since it now is stand-alone from the hwclock
tool. Note: the kernel can also be set to load and store RTC to/from system clock at boot/halt as well, issue #110/sys/devices/*
/etc/modules-load.d/
by Robert Andersson, Atlas Copconame:foo
support for services, by Robert Andersson, Atlas Copcomanual:yes
support for services, by Robert Andersson, Atlas Copcolog:console
support for services, by Robert Andersson, Atlas Copco:ID
as a string, by Jonas Johansson, Westermoinitctl reload
, when a service configuration has changed. Disabled by default, but can be enabled with ./configure --enable-auto-reload
--disable-inetd
SIGKILL
inetd services, they are not backed by a PID. This caused a use after free issue crashing finit. Found and fixed by Tobias Waldekranz, Westermo/var/run
does not yet exist (symlink to /run
). Added compat layer for access@console
resolves to >1 TTY,/var/run
stdin
to /dev/null
for services by defaultnanosleep()
to achieve "signal safe" sleep, fixed by Jacques de Laval, Westermologit
processes when parent dies/bin/sh -c foo
just like the standard run-parts tool. Found by Magnus Malm, Westermoinitctl [start | restart]
, should behave the same for services that have crashed. Found by Mattias Walström, WestermoPublished by troglobit about 6 years ago
Bug fix release.
--disable-docs
and --disable-contrib
to speed up builds and work around issue with massively parallel builds-b
, batch mode, for non-interactive use to initctl
/dev/
if mdev is also available$SHELL
, like $PATH
, to a sane default value, needed by BusyBox*.conf
files after running /etc/rc.local
or run-parts. Use initctl reload
instead.initctl
without an argument or option now defaults to list servicessvc_t
and not PIDHOOK_SVC_START
and HOOK_SVC_LOST
, caused more problems than they were worth. Users are encouraged to use accounting insteadsvc_t
until any SIGKILL
timer has elapseduev_init1()
to reduce event cache so that the kernel can invalidate deleted events before enqueing to userspace--disable-inetd
SIGKILL
inetd services, they are not backed by a PID. This caused a use after free issue crashing finit. Found and fixed by Tobias Waldekranz, @wkz, Westermo/var/run
does not yet exist (symlink to /run
). Added compat layer for access@console
resolves to >1 TTYinitctl [start | restart]
, should behave the same for services that have crashed. Found by Mattias Walström, @mattiaswal, WestermoPublished by troglobit over 6 years ago
Improvements to netlink.so
plugin, per-service rlimit
support, improved integration with watchdogd, auto-detect TTY console. Much improved debug, rescue and logging support. Also, many fixes to both big and small issues, most notably in the condition handling, which no longer is sensitive to time skips.
This version requires at least libuEv v2.1.0 and libite v2.0.1
--debug
but also enable kernel debugIFF_RUNNING
to netlink plugin => net/IFNAME/running
initctl
API socket on SIGHUP
initctl status <JOB|NAME>
commandrlimit
per service/run/task/inetd/tty, issue #45hard
and soft
rlimit for a resource at oncetty @console
eliminates the need to keep track of different console devices across embedded platforms: /dev/ttyS0
, /dev/ttyAMA0
, etc.nologin
option. Bypasses login and skips immediately to a root shell. Useful during board bringup, in developer builds, etc.console DEV
settingPress enter to ...
prompt will now replace that line with the login issue textinitctl
without any arguments or options now defaults to show status of all enabled services, and run/task/inetd jobsLoading plugins ...
, start of inetd services, and Loading configuration ...
. No end user knows what those plugins and configurations are, i.e. internal state+configSIGPWR
and then SIGTERM
. It is recommended the daemon start a timer on the first signal, in case the shutdown process somehow hangs./etc/
OverlayFS, reload /etc/finit.d/*.conf after mount -a
initctl touch <CONF>
to be used with reload
initctl show <SVC>
/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
.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--enable-redirect
to automatically redirect stdout
and stderr
of all applications to /dev/null
pid
sub-option to services when a service does not create a PID file, or when the PID file has another name. Issue #95log
sub-option to service/run/tasks, selectively redirect stdout
and stderr
using the new tool logit
to either syslog or a logfile. Issue #44log
option. Use configure --disable-logrotate
on systems with a dedicated log rotation service. Issue #44 --
description. Note: no description separator gives a default desc./etc/mtab
symlink if missing on system (bootmisc plugin)hook/mount/post
runs after mount -a
but before the hook/mount/all
, where bootmisc.so
runs. This provides the possibility of running a second stage mount command before files in /run
and similar are createdgdbserver
when unleashing the grim reaper at shutdowndocs/
and contrib/
directories[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:161
, issue #87. Found by WestermoHOOK_SVC_RECONF
eventskill(0, SIGKILL)
initctl show
initctl
with STDOUT
redirectedinitctl start/stop <ID>
, using name worked not idinitctl start/stop
without any argument--debug
/run
instead of /var/run
Published by troglobit almost 7 years ago
--debug
but also enable kernel debugIFF_RUNNING
to netlink plugin => net/IFNAME/running
initctl
API socket on SIGHUP
initctl status <JOB|NAME>
commandhard
and soft
rlimit for a resource at oncenologin
to tty configurations, skips the login prompt and skips immediately to a root shell. Useful during board bringup, in developer builds, etc. Be careful though ...SIGPWR
and then SIGTERM
. It is recommended the daemon start a timer on the first signal, in case the shutdown process somehow hangs.--enable-redirect
to automatically redirect stdout
and stderr
of all applications to /dev/null
pid
sub-option to services when a service does not create a PID file, or when the PID file has another name. Issue #95log
sub-option to service/run/task to selectively redirect stdout
and stderr
using the new tool logit
to either syslog or a logfile. Issue #44finit-3.1-rc2.tar.xz Distribution tarball
finit-3.1-rc2.tar.xz.md5 595f2eea6bfe11c0c61a2c18c0141b3f
Published by troglobit almost 7 years ago
Finit v3.1 require libuEv v2.1.0, or later, and libite v2.0.1, or later.
rlimit
per service/run/task/inetd/tty, issue #45tty @console
eliminates the need to keep track of different console devices across embedded platforms: /dev/ttyS0
, /dev/ttyAMA0
, etc.console DEV
settingPress enter to ...
prompt will now replace that line with the login issue textinitctl
without any arguments or options now defaults to show status of all enabled services, and run/task/inetd jobsLoading plugins ...
, start of inetd services, and Loading configuration ...
. No end user knows what those plugins and configurations are, i.e. internal state+config/etc/
OverlayFS, reload /etc/finit.d/*.conf after mount -a
initctl touch <CONF>
to be used with reload
initctl show <SVC>
/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
.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[S]
with a condition <...>
failed to run. Finit now tracks run/tasks more carefully, waiting for them to finish before:161
, issue #87. Found by WestermoHOOK_SVC_RECONF
eventskill(0, SIGKILL)
initctl show
initctl
with STDOUT
redirectedinitctl start/stop <ID>
, using name worked not idinitctl start/stop
without any argument--debug
Published by troglobit about 7 years ago
Major release, support for conditions/dependencies between services, optional built-in watchdog daemon, optional built-in getty, optional built-in standard inetd services like echo server, rdate, etc.
Also, native support for Debian/BusyBox /etc/network/interfaces
, overhauled new configure based build system, logging to /dev/kmsg
before syslogd has started, massively improved support for Linux distributions.
Added basic code of conduct covenant to project
Added contribution guidelines document
Removed finit.conf
option check DEV
, replaced entirely by automated call to fsck
for each device listed in /etc/fstab
Removed deprecated and confusing startx
and user
settings. It is strongly recommended to instead use xdm/gdb/lightdm etc.
Add support for initctl log <SVC>
, shows last 10 lines from syslog
Add initctl cond dump
for debugging conditions
Ensure plugins always have a default name, file name
Reorganization, move all source files to a src/
sub-directory
Add support for initctl <list|enable|disable> <SVC>
, much needed by distributions. See doc/distro.md for details
Remove UNUSED()
macro, mentioned here because it may have been used by external plugin developers. Set -Wno-unused-parameter
instead
New table headings in initctl
, using top
style inverted text
Allow initctl show
to use full screen width for service descriptions
New HOOK_BANNER
for plugins to override the default banner()
Allow loading TTYs from /etc/finit.d
Improvements to built-in getty, ignore signals like SIGINT
, SIGHUP
, support Ctrl-U to erase to beginning of line
Add TTY nowait
and noclear
options
Allow using both built-in getty and external getty:
tty [12345] /dev/ttyAMA0 115200 noclear vt220
tty [12345] /sbin/getty -L 115200 /dev/ttyAMA0 vt100
tty [12345] /sbin/agetty -L ttyAMA0 115200 vt100 nowait
Silent boot is now the default, use --enable-progress
to get the old
Finit style process progress. I.e., --enable-silent
is no more
Support for configure --enable-emergency-shell
, debug-only mode
Support for a fallback shell on console if none of the configured TTYs can be started, configure --enable-fallback-shell
All debug messages to console when Finit --debug
is enabled
Prevent login, by touching /etc/nologin
, during runlevel changes
A more orderly shutdown. On reboot/halt/poweroff Finit now properly goes to runlevel 0/6 to first stop all processes.
Perform sync before remounting as read-only, at shutdown
Clean up /tmp
, /var/run
, and /var/lock
at boot on systems which have these directories on persistent storage
Call udev triggers at boot, on systems with udev
Add missing /var/lock/subsys
directory for dbus
Add support for poweroff
Add support for a built-in miniature watchdog daemon
Remove GLIBC:isms like __progname
Manage service states based on user defined conditions
Manage dependencies between services, w/ conditions (pidfile plugin)
Manage service dependencies on network events (netlink plugin)
Support for dynamically reloading Finit configuration at runtime
Refactor to use GNU configure and build system
New hooks for for detecting lost and started services (lost plugin)
External libraries, libuEv and libite, now build requirements
Early logging support to /dev/kmsg
instead of console
Support for redirecting stdout/stderr of services to syslog
Support for managing resource limits for Finit and its processes
Add optional built-in inetd services: echo server, chargen, etc.
Add simple built-in getty
Greatly improved accounting support, both UTMP and WTMP fixes+features
Improved udev support, on non-embedded systems
Improved shutdown and file-system unmount support (Debian)
Support SysV init /etc/rc.local
Inetd protection against UDP looping attacks
Support systems with /run
instead of /var/run
(bootmisc plugin)
Adopted BusyBox init signals for halt/reboot/poweroff
SysV init compat support for reboot (setenv)
Compat support for musl libc
Add OpenRC-like support for sysctl.d/*.conf
Add support for Debian/BusyBox /etc/network/interfaces
Add support for running fsck on file systems in /etc/fstab
Added example configs + HowTos for Debian and Alpine Linux
to support latest releases of both distributions
Lots of documentation updates
reconf
condition when initctl reload
has finished/etc/finit.d/*.conf
files when changing runlevel to halt or rebootinitctl
should display error and return error code for non-existing services should the operator try to start/stop them.net/*
conditions after initctl reload
fsck
on already mounted devices/var/log/wtmp
, created by Finitifup
exists before trying to bring up networking, also set $PATH
earlier to simplify run()
et al -- no longer any need to use absolute paths for system tools called from Finit. Thanks to crazyntohl()
in inetd handling, prevents matches. Thanks to Petrus Hellgren, Westermostdarg.h
in helpers.h
, thanks to Jörg KrausePublished by troglobit almost 8 years ago
Second pre-release,
--debug
is enabled/etc/nologin
, during runlevel changes/tmp
, /var/run
, and /var/lock
at boot on systems which/var/lock/subsys
directory for dbuspoweroff
__progname
Published by troglobit about 8 years ago
/dev/kmsg
instead of console--enable-emergency-shell
(configure) fallback debug mode/etc/rc.local
/run
instead of /var/run
(bootmisc plugin)/etc/network/interfaces
/etc/fstab
Published by troglobit almost 9 years ago
Bug fix release.
name:id
SIGHUP
caused a freeze due to Finit waiting forSIGHUP
services after reconfigurationPublished by troglobit almost 9 years ago
Bug fix release.
name:id
initctl show
, show actual statusinitctl reload
to change system configurationinitctl restart
: users expectSIGHUP
even if theNULL
pointer dereference causing kernel panic when user callsinitctl reload
after change of system configurationinitctl show
for services not inPublished by troglobit almost 9 years ago
Lots of fixes to handle static builds, but also fixes for dynamic event
handling and reconfiguration at runtime.
--debug
flag to initctl
initctl show
now hightlight theinitctl help
that the GW event toGW:UP
configure --disable-inetd
SIGHUP
'able, regression in v2.0HOOK_SVC_RECONF
only when all processes have been stopped