mirror of
https://github.com/troglobit/finit.git
synced 2026-10-07 16:14:21 +07:00
45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
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.
|
|
|