-
-
Notifications
You must be signed in to change notification settings - Fork 49
/
TODO
50 lines (46 loc) · 2.78 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
For version 1.0 (release requirements):
---------------------------------------
* Be able to boot and shutdown Linux and FreeBSD (or OpenBSD).
* Documentation must be complete (mostly done; will need updates as other items are completed).
* signal (SIGUSR1) to open control socket (useful for recovery/single-user)
* dinitctl command to release console (useful for recovery/single-user)
For later (post 1.0):
---------------------
* jails support
* Proper support for socket activation?
* Perhaps need a way to prevent script services from re-starting.
(eg there's no need to mount filesystems twice; there might be various other
system initialisations that can't or shouldn't really be "undone" and so do
not need to be re-done).
* on shutdown, after a long interval with no activity, display information about
services we are waiting on (and/or, do this when prompted via ^C or C-A-D?)
* Internationalisation
* A service can prevent shutdown/reboot by failing to stop. Maybe make
multiple CTRL-ALT-DEL presses (or ^C since that's more portable) commence
immediate shutdown (or launch a simple control interface).
* When we take down a service or tty session, it would be ideal if we could kill
the whole process tree, not just the leader process (need cgroups or pid
namespace or other mechanism).
* Allow running services chroot, in namespaces (pid/fs/uid), etc
* Support chaining service output to another process (logger) input; if the
service dies the file descriptor of its stdout isn't closed and is reassigned
when the service is restarted, so that minimal output is lost. [Done!]
- even more, it would be nice if a single logger process could be responsible
for receiving output from multiple services. This would require some kind of
protocol for passing new output descriptors to the logger (for when a
service starts).
Even later / Maybe never:
-------------------------
* Support recognising /etc/init.d services automatically (as script services, with
no dependency management - or upstart compatible dependency management)
Also BSD's rc.d style scripts (PROVIDE, REQUIRE).
* Place some reasonable, soft limit on the number of services to be started
simultaneously, to prevent thrashing. Services that are taking a long time
to start don't count to the limit. Maybe use CPU/IO usage as a controlling
factor.
* Cron-like tasks (if started, they run a sub-task periodically. Stopping the
task will wait until the sub-task is complete).
* Allow to run services attached to virtual tty, allow connection to that tty (ala "screen").
* SystemD-like handling of filesystem mounts (see autofs documentation in kernel)
i.e. a mount point gets an autofs attached, and lazily gets mounted when accessed
(or is mounted in parallel). Probably put the functionality in a separate daemon.