You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Changes
Change behavior on SIGUSR1 to be compatible with sysvinit and systemd. Previously SIGUSR1 caused Finit to halt, like BusyBox init. This had "interesting" side effects on Debian systems when coexisting with sysvinit (upgrading/reinstalling causes scripts to kill -USR1 1)
Change how contrib/debian/install.sh sets up a Grub boot entry for finit. We now modify the $SUPPORTED_INITS variable in 10_linux
Disable default kernel ctrl-alt-delete handler and let Finit instead catch 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
Added keventd to provide <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
For handling power fail events (from UPS and similar) a process may send 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
Built-in Finit getty is now a standalone program
Default termios for TTYs now enable IUTF8 on input
If /bin/login is not found, Finit now tries sulogin before it falls back to an unauthenticated /bin/sh
Dropped (broken) support for multiple consoles. Finit now follows the default console selected by the kernel, /dev/console
Dropped signal handlers for SIGSTOP/TSTP and SIGCONT
Added support for \n, in addition to \r, in "Please press Enter" prompt before starting getty
Finit no longer parses /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
The following plugins are now possible to disable (for containers): 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.0
Added support for reading PRETTY_NAME from /etc/os-release to use as heading in progress output, unless --with-heading=GREET is used.
Added manual pages for finit(8), initctl(8), and finit.conf(5)
Fixes
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 System has no /dev/shm or /dev/pts set up when running on Debian #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.
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 Ctrl-C in login shell is forwarded to PID 1 causing reboot #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
This discussion was created from the release Finit v4.1.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Bug fix release. Also disables handlers for
SIGINT
andSIGPWR
, a new set ofsys
conditions are instead generated which can be used to trigger external programs.Changes
kill -USR1 1
)contrib/debian/install.sh
sets up a Grub boot entry for finit. We now modify the $SUPPORTED_INITS variable in10_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 issueinitctl 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 withconfigure --with-keventd
SIGPWR
to PID 1. Finit no longer redirects this toSIGUSR1
(poweroff). There is no default command for this, you need to set up a task that triggers on<sys/pwr/fail>
to issueinitctl poweroff
IUTF8
on input/bin/login
is not found, Finit now triessulogin
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 fromargv[]
, 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, seeconfigure --enable-kernel-cmdline
rtc.so
,urandom.so
, you may also want to disablehotplug.so
. They are all enabled by default, as in Finit 4.0, but may be moved to external tools or entries infinit.conf
in Finit 5.0PRETTY_NAME
from/etc/os-release
to use as heading in progress output, unless--with-heading=GREET
is used.Fixes
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 replyEnsure 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 givestty:S0
as expected. This was default for built-in getty alreadyFix max username (32 chars) in bundled Finit getty
The
contrib/*/install.sh
scripts failed to run from tarballFinit 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 remountedFix SIGCHLD handler,
waitpd()
may be interrupted by a signalReset
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 Condition net/route/default remains asserted when interface goes down #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 System has no /dev/shm or /dev/pts set up when running on Debian #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 netlink plugin runs out of socket buffer space #173: netlink plugin runs out of socket buffer space;
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:Fix logging: Disregard logging facility when comparing log levels #174: loss of log messages using combo of prio and facility, e.g.,
logit(LOG_CONSOLE | LOG_NOTICE, ...)
, by Jacques de Laval, WestermoFix Ctrl-C in login shell is forwarded to PID 1 causing reboot #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
This discussion was created from the release Finit v4.1.
Beta Was this translation helpful? Give feedback.
All reactions