diff --git a/README.md b/README.md
index 7298356e..8f611c0c 100644
--- a/README.md
+++ b/README.md
@@ -62,7 +62,7 @@ Start, monitor and restart processes (daemons) if they fail.
**Inetd**
-Finit comes with an `inetd` server built-in. No need to maintain a
+Finit comes with a built-in `inetd` server. No need to maintain a
separate config file for services that you want to start on demand.
All inetd services started can be filtered per port and inbound
@@ -75,7 +75,7 @@ Runlevels are optional in Finit, but support for [SysV runlevels][5] is
available if needed. All services in runlevel S(1) are started first,
followed by the desired run-time runlevel. Runlevel S can be started in
sequence by using `run [S] cmd`. Changing runlevels at runtime is done
-like any other init, e.g. init 4.
+like any other init, e.g. init 4
**Plugins**
@@ -92,7 +92,7 @@ Plugin capabilities:
* Task/Run callbacks -- a one-shot commands, executed in sequence
* Hooks -- hook into the boot at predefined points to extend finit
* I/O -- listen to external events and control finit behavior/services
-* Inetd -- extend with internal inetd services
+* Inetd -- extend with internal inetd services, see `plugins/time.c`
Extensions and functionality not purely related to what an `/sbin/init`
needs to start a system are available as a set of plugins that either
@@ -150,23 +150,32 @@ Syntax:
Service, or daemon, to be monitored and automatically restarted if it
exits prematurely. Please note that you often need to provide a
- --foreground or --no-background argument to most daemons to prevent
- them from forking off to the background.
+ `--foreground` or `--no-background` argument to most daemons to
+ prevent them from forking off a sub-process in the background.
-* `inetd SVC[@iface[:port]]/PROTO [LVLS] /path/to/daemon args`
+* `inetd service/proto[@iflist] [LVLS] /path/to/daemon args`
- Launch daemon on demand when a client initiates a connection to `SVC`.
- Services (SVC) are specified in the standard UNIX `/etc/services`
- file. With optional filtering for `iface` and possible custom `port`.
+ Launch a daemon when a client initiates a connection on an Internet
+ port. Available services are listed in the UNIX `/etc/services` file.
+ Finit can filter access to from a list of interfaces, `@iflist`, per
+ inetd service as well as listen to custom ports.
- The following example opens port 2323 and only allows inbound telnet
- connections from `eth0`:
+ inetd ftp/tcp nowait @root /usr/sbin/uftpd -i -f
+ inetd tftp/udp wait @root /usr/sbin/uftpd -i -t
- inetd telnet@eth0:2323/tcp nowait [2345] /sbin/telnetd -i -F
+ The following example listens to port 2323 for telnet connections and
+ only allows clients connecting from `eth0`:
+
+ inetd 2323/tcp@eth0 nowait [2345] /sbin/telnetd -i -F
+
+ The interface list, `@iflist`, is of the format `@iface,!iface,iface`,
+ where a single `!` means to deny access. Notice how interfaces are
+ comma separated with no spaces.
The `inetd` directive can also have ` -- Optional Description`, only
Finit does not output this text on the console when launching inetd
- services. Instead this text is sent to syslog. More on inetd below.
+ services. Instead this text is sent to syslog and also shown by the
+ `initctl` tool. More on inetd below.
* `runparts `
@@ -280,10 +289,11 @@ Bootstrap
12. Set hostname and bring up loopback interface
13. Call `network` script, if set in `/etc/finit.conf`
14. Call 3rd level hooks, `HOOK_NETWORK_UP`
-15. Switch to active runlevel, as set in `/etc/finit.conf`, default 2.
- Here is where the rest of all tasks and inetd services are started.
+15. Load all `*.conf` files in `/etc/finit.d/` and switch to the active
+ active runlevel, as set in `/etc/finit.conf`, default is 2. Here is
+ where the rest of all tasks and inetd services are started.
16. Call 4th level hooks, `HOOK_SVC_UP`
-17. Run-parts in `/etc/finit.d`, if any
+17. If `runparts ` is set, [run-parts(8)] is called on ``
18. Call 5th level (last) hooks, `HOOK_SYSTEM_UP`
19. Start TTYs defined in `/etc/finit.conf`, or rescue on `/dev/console`
20. Enter main monitor loop