Files
finit/doc/TODO.md
T
2021-02-28 10:36:32 +01:00

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_t from the SIGCHLD signal and supply to the user in case initctl status <process> is called to debug the issue.
  • Add finit.conf support for UPS notification (SIGPWR) to start a task using, e.g. <sys/power/{ok,fail,low}> conditions. More info in sig.c
  • Add finit.conf support 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 excellent pimd man 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.