diff --git a/TODO.rst b/TODO.rst index cf3f8fe9..519f0991 100644 --- a/TODO.rst +++ b/TODO.rst @@ -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 and service 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 ..