mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 05:22:48 +07:00
1.8 KiB
1.8 KiB
Goals of Finit
Initially Finit aimed to be more than a processes monitor, acting as a replacement for cron/at and inetd as well. Over time, however, the true value in the project turned out to be:
A simple SysV init and systemd replacement, primarily for embedded systems, container, and dedicated server applications.
Misc TODOs
Some of these are also registered in the issue tracker on GitHub.
- Refactor the .conf parser, parse user input in a separate process
- Move process monitor to separate process (same as parser?)
- Add new (complimentary) .svc file format to slowly migrate away from the very terse one-liner format currently used
- Allow running as non-pid1 => read .conf and RCSD form cmdline
- When a process dies, and Finit does not restart it, we should collect
a
siginfo_tfrom the SIGCHLD signal and supply to the user in caseinitctl status <process>is called to debug the issue. - Add
finit.confsupport for UPS notification (SIGPWR) to start a task using, e.g. <sys/power/{ok,fail,low}> conditions. More info in sig.c - Add
finit.confsupport for ctrl-alt-delete (SIGINT) and kbrequest, i.e. KeyboardSignal, (SIGWINCH) behavior. Using conditions to a task, e.g, <sys/key/ctrlaltdel> and <sys/key/signal> like SIGPWR handling. - Write man pages for finit and
finit.conf, steal from the excellentpimdman pages ... - Add support for timed shutdown in Finit, including cancelled shutdown
- Add support for JSON output, or similar, from
initctl show, e.g.initctl show --json
Init
Finit in itself is not SysV Init compatible, it doesn't use /etc/rc.d
and /etc/init.d scripts to boot the system. However, a plausible way
to achieve compatibility would be to add a plugin to finit which reads
/etc/inittab to be able to start standard Linux systems.