Update TODO

More inspiration and courage from the launchd Google Talk video!
Fascinating stuff about replacing init/inetd/cron/watchdogd that
I've been thinking about for ages!

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson committed 2013-05-19 23:39:23 +02:00
1 parent 53127a7ce6
commit b23ce7ab8e
1 file changed
+39 -4
+39 -4
View File
@@ -2,7 +2,35 @@
TODO
==============================================================================
Unsorted TODO list of features and points of investigation that could be
useful for improving finit.
useful for improving finit. But what is an improvement to finit? Well,
similiar to launchd, the goal of finit is to be a FAST replacement for:
* init
* inetd
* crond
* watchdogd
The main goal is to be FAST. Secondary goals are to be: small, simple
and with a very low dependency to external packages.
Priority
--------
The intent of finit is to monitor not just processes, but also to
be able to supervise the entire system and the behavior of certain
processes that declare themselves to be finit compliant.
* Integrate the ingenious libev to handle all events: signals,
polling fd's, etc. Because "Event driven software improves
concurrency" -- Dave Zarzycki, Apple. See the launchd video
at http://www.youtube.com/watch?v=cD_s6Fjdri8 for more info!
* Add support for process and system supervision. Which could
be an API wrapping, e.g., TIPC and loadavg.
* Add support for a /dev/watchdog plugin to replace watchdogd
* Integrate watchdog plugin with process/system supervisor to
reboot the system when a process stops responding, or when
restarting it is imposible, as well as when system load gets
too high.
Runlevels
---------
@@ -11,6 +39,7 @@ Runlevels
startup at RL 1 and a default run level.
* Implement initctl stop|start|restart|reload|status <SVC> and
service <SVC> stop|start|restart|reload|status on top
* Add PRE and POST hooks for when changing runlevels
Configuration
-------------
@@ -20,26 +49,32 @@ Configuration
Services and Tasks
------------------
Both the "task" and "boot" stanzas below are like "service", share the
same mechanism for registering callbacks. These callbacks can be used
to check a configuration db and return 1 (RUN), 2 (STOP), or 3 (RELOAD).
* Add support for "task [RUNLVL] ..." similar to services, but
one-shot. Needs a trigger/when
* Add support for "boot [RUNLVL] ..." similar to services, but
waits for completion before continuing with the next line
* Add support for service/task dependencies
* Add support for "init list" to show running services
Miscellaneous
-------------
* Add support for "init -v,--version | version"
* Cleanup move sources from top-level directory to src/ and include/
* Make sure to install queue.h to $(PREFIX)/include/finit/queue.h
Documentation
-------------
* Write man pages for finit and finit.conf, steal from pimd man pages...
* Update Debian finit.conf example with runlevels, tty/console and
dependency handling
Investigation
-------------
* Investigate FHS changes affecting runtime status etc., see
* FHS changes affecting runtime status, plugins, etc., see
http://askubuntu.com/questions/57297/why-has-var-run-been-migrated-to-run
..