about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2015-07-12 05:33:01 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2015-07-12 05:33:01 +0000
commitdb7e83c95875fdc630a4014b323f9fbec205ba6c (patch)
tree41e0ec15c6c8fc4a6abdfa8179327fa083a8729e
parent1cdd470038332a0355d7923483fc7b23cd7e8b7a (diff)
downloads6-rc-db7e83c95875fdc630a4014b323f9fbec205ba6c.tar.gz
s6-rc-db7e83c95875fdc630a4014b323f9fbec205ba6c.tar.xz
s6-rc-db7e83c95875fdc630a4014b323f9fbec205ba6c.zip
Added the example source.
-rw-r--r--doc/s6-rc-compile.html11
-rw-r--r--examples/README13
-rw-r--r--examples/source/00/down1
-rw-r--r--examples/source/00/type1
-rw-r--r--examples/source/00/up2
-rw-r--r--examples/source/devd-log/dependencies1
-rw-r--r--examples/source/devd-log/producer1
-rwxr-xr-xexamples/source/devd-log/run4
-rw-r--r--examples/source/devd-log/type1
-rw-r--r--examples/source/devd/dependencies2
-rw-r--r--examples/source/devd/logger1
-rwxr-xr-xexamples/source/devd/run5
-rw-r--r--examples/source/devd/type1
-rw-r--r--examples/source/dns-cache-log/dependencies1
-rw-r--r--examples/source/dns-cache-log/producer1
-rwxr-xr-xexamples/source/dns-cache-log/run4
-rw-r--r--examples/source/dns-cache-log/type1
-rw-r--r--examples/source/dns-cache/data/root/ip/127.0.0.10
-rw-r--r--examples/source/dns-cache/data/root/ip/192.168.00
-rw-r--r--examples/source/dns-cache/data/root/ip/192.168.10
-rw-r--r--examples/source/dns-cache/data/root/ip/192.168.20
-rw-r--r--examples/source/dns-cache/data/root/ip/192.168.30
-rw-r--r--examples/source/dns-cache/data/root/ip/192.168.40
l---------examples/source/dns-cache/data/root/servers/168.192.in-addr.arpa1
-rw-r--r--examples/source/dns-cache/data/root/servers/@13
-rw-r--r--examples/source/dns-cache/data/root/servers/example.com1
-rw-r--r--examples/source/dns-cache/dependencies2
-rw-r--r--examples/source/dns-cache/env/CACHESIZE1
-rw-r--r--examples/source/dns-cache/env/IPSEND1
-rw-r--r--examples/source/dns-cache/env/ROOT1
-rw-r--r--examples/source/dns-cache/logger1
-rwxr-xr-xexamples/source/dns-cache/run14
-rw-r--r--examples/source/dns-cache/type1
-rw-r--r--examples/source/dns-server-tcp-4-log/dependencies1
-rw-r--r--examples/source/dns-server-tcp-4-log/producer1
-rwxr-xr-xexamples/source/dns-server-tcp-4-log/run4
-rw-r--r--examples/source/dns-server-tcp-4-log/type1
-rw-r--r--examples/source/dns-server-tcp-4/dependencies2
-rw-r--r--examples/source/dns-server-tcp-4/logger1
-rw-r--r--examples/source/dns-server-tcp-4/notification-fd1
-rwxr-xr-xexamples/source/dns-server-tcp-4/run9
-rw-r--r--examples/source/dns-server-tcp-4/type1
-rw-r--r--examples/source/dns-server-udp-log/dependencies1
-rw-r--r--examples/source/dns-server-udp-log/producer1
-rwxr-xr-xexamples/source/dns-server-udp-log/run4
-rw-r--r--examples/source/dns-server-udp-log/type1
-rw-r--r--examples/source/dns-server-udp/dependencies2
-rw-r--r--examples/source/dns-server-udp/logger1
-rwxr-xr-xexamples/source/dns-server-udp/run8
-rw-r--r--examples/source/dns-server-udp/type1
-rw-r--r--examples/source/fdholder-log/dependencies1
-rw-r--r--examples/source/fdholder-log/producer1
-rwxr-xr-xexamples/source/fdholder-log/run4
-rw-r--r--examples/source/fdholder-log/type1
-rw-r--r--examples/source/fdholder/data/rules/uid/0/allow0
-rw-r--r--examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_GETDUMP1
-rw-r--r--examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_RETRIEVE_REGEX1
-rw-r--r--examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_SETDUMP1
-rw-r--r--examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_STORE_REGEX1
-rw-r--r--examples/source/fdholder/dependencies1
-rw-r--r--examples/source/fdholder/logger1
-rw-r--r--examples/source/fdholder/notification-fd1
-rwxr-xr-xexamples/source/fdholder/run5
-rw-r--r--examples/source/fdholder/type1
-rw-r--r--examples/source/fifodir-cleanup/dependencies1
-rwxr-xr-xexamples/source/fifodir-cleanup/run15
-rw-r--r--examples/source/fifodir-cleanup/type1
-rw-r--r--examples/source/hostapd-log/dependencies1
-rw-r--r--examples/source/hostapd-log/producer1
-rwxr-xr-xexamples/source/hostapd-log/run4
-rw-r--r--examples/source/hostapd-log/type1
-rw-r--r--examples/source/hostapd/dependencies1
-rw-r--r--examples/source/hostapd/logger1
-rwxr-xr-xexamples/source/hostapd/run3
-rw-r--r--examples/source/hostapd/type1
-rw-r--r--examples/source/httpd-4-log/dependencies1
-rw-r--r--examples/source/httpd-4-log/producer1
-rwxr-xr-xexamples/source/httpd-4-log/run4
-rw-r--r--examples/source/httpd-4-log/type1
-rw-r--r--examples/source/httpd-4/dependencies2
-rw-r--r--examples/source/httpd-4/logger1
-rw-r--r--examples/source/httpd-4/notification-fd1
-rwxr-xr-xexamples/source/httpd-4/run8
-rw-r--r--examples/source/httpd-4/type1
-rw-r--r--examples/source/identd-4-log/dependencies1
-rw-r--r--examples/source/identd-4-log/producer1
-rwxr-xr-xexamples/source/identd-4-log/run4
-rw-r--r--examples/source/identd-4-log/type1
-rw-r--r--examples/source/identd-4/dependencies1
-rw-r--r--examples/source/identd-4/logger1
-rw-r--r--examples/source/identd-4/notification-fd1
-rwxr-xr-xexamples/source/identd-4/run7
-rw-r--r--examples/source/identd-4/type1
-rw-r--r--examples/source/init-coldplug/dependencies3
-rw-r--r--examples/source/init-coldplug/down1
-rw-r--r--examples/source/init-coldplug/type1
-rw-r--r--examples/source/init-coldplug/up1
-rw-r--r--examples/source/init-devtmpfs/dependencies1
-rw-r--r--examples/source/init-devtmpfs/down1
-rw-r--r--examples/source/init-devtmpfs/type1
-rw-r--r--examples/source/init-devtmpfs/up11
-rw-r--r--examples/source/init-diskconfig/dependencies1
-rw-r--r--examples/source/init-diskconfig/down1
-rw-r--r--examples/source/init-diskconfig/type1
-rw-r--r--examples/source/init-diskconfig/up4
-rw-r--r--examples/source/init-eth3/dependencies1
-rw-r--r--examples/source/init-eth3/down1
-rw-r--r--examples/source/init-eth3/type1
-rw-r--r--examples/source/init-eth3/up1
-rw-r--r--examples/source/init-lan/dependencies2
-rw-r--r--examples/source/init-lan/down1
-rw-r--r--examples/source/init-lan/type1
-rw-r--r--examples/source/init-lan/up11
-rw-r--r--examples/source/init-sysctl/dependencies1
-rw-r--r--examples/source/init-sysctl/down1
-rw-r--r--examples/source/init-sysctl/type1
-rw-r--r--examples/source/init-sysctl/up6
-rw-r--r--examples/source/init-urandom/dependencies1
-rw-r--r--examples/source/init-urandom/down1
-rw-r--r--examples/source/init-urandom/type1
-rw-r--r--examples/source/init-urandom/up3
-rw-r--r--examples/source/init-wlan0/dependencies1
-rw-r--r--examples/source/init-wlan0/down1
-rw-r--r--examples/source/init-wlan0/type1
-rw-r--r--examples/source/init-wlan0/up5
-rw-r--r--examples/source/klogd-log/dependencies1
-rw-r--r--examples/source/klogd-log/producer1
-rwxr-xr-xexamples/source/klogd-log/run4
-rw-r--r--examples/source/klogd-log/type1
-rw-r--r--examples/source/klogd-srv/dependencies1
-rw-r--r--examples/source/klogd-srv/logger1
-rwxr-xr-xexamples/source/klogd-srv/run5
-rw-r--r--examples/source/klogd-srv/type1
-rw-r--r--examples/source/klogd/contents2
-rw-r--r--examples/source/klogd/type1
-rw-r--r--examples/source/mount-cgroups/dependencies2
-rw-r--r--examples/source/mount-cgroups/down1
-rw-r--r--examples/source/mount-cgroups/type1
-rw-r--r--examples/source/mount-cgroups/up10
-rw-r--r--examples/source/mount-disks/contents3
-rw-r--r--examples/source/mount-disks/type1
-rw-r--r--examples/source/mount-proc/dependencies1
-rw-r--r--examples/source/mount-proc/down1
-rw-r--r--examples/source/mount-proc/type1
-rw-r--r--examples/source/mount-proc/up1
-rw-r--r--examples/source/mount-rwfs/dependencies1
-rw-r--r--examples/source/mount-rwfs/down1
-rw-r--r--examples/source/mount-rwfs/type1
-rw-r--r--examples/source/mount-rwfs/up3
-rw-r--r--examples/source/mount-swap/dependencies1
-rw-r--r--examples/source/mount-swap/down3
-rw-r--r--examples/source/mount-swap/type1
-rw-r--r--examples/source/mount-swap/up3
-rw-r--r--examples/source/mount-sync/dependencies1
-rw-r--r--examples/source/mount-sync/down1
-rw-r--r--examples/source/mount-sync/type1
-rw-r--r--examples/source/mount-sync/up3
-rw-r--r--examples/source/mount-sys/dependencies1
-rw-r--r--examples/source/mount-sys/down1
-rw-r--r--examples/source/mount-sys/type1
-rw-r--r--examples/source/mount-sys/up1
-rw-r--r--examples/source/ntpclient-log/dependencies1
-rw-r--r--examples/source/ntpclient-log/producer1
-rwxr-xr-xexamples/source/ntpclient-log/run4
-rw-r--r--examples/source/ntpclient-log/type1
-rw-r--r--examples/source/ntpclient/dependencies2
-rw-r--r--examples/source/ntpclient/logger1
-rwxr-xr-xexamples/source/ntpclient/run20
-rw-r--r--examples/source/ntpclient/type1
-rw-r--r--examples/source/ok-all/contents3
-rw-r--r--examples/source/ok-all/type1
-rw-r--r--examples/source/ok-lan/contents11
-rw-r--r--examples/source/ok-lan/type1
-rw-r--r--examples/source/ok-local/contents10
-rw-r--r--examples/source/ok-local/type1
-rw-r--r--examples/source/ok-wan/contents3
-rw-r--r--examples/source/ok-wan/type1
-rw-r--r--examples/source/qmail-log/dependencies1
-rw-r--r--examples/source/qmail-log/producer1
-rwxr-xr-xexamples/source/qmail-log/run4
-rw-r--r--examples/source/qmail-log/type1
-rw-r--r--examples/source/qmail/dependencies3
-rw-r--r--examples/source/qmail/logger1
-rwxr-xr-xexamples/source/qmail/run4
-rw-r--r--examples/source/qmail/type1
-rw-r--r--examples/source/qmtpd-4-log/dependencies1
-rw-r--r--examples/source/qmtpd-4-log/producer1
-rwxr-xr-xexamples/source/qmtpd-4-log/run4
-rw-r--r--examples/source/qmtpd-4-log/type1
-rw-r--r--examples/source/qmtpd-4/dependencies1
-rw-r--r--examples/source/qmtpd-4/logger1
-rw-r--r--examples/source/qmtpd-4/notification-fd1
-rwxr-xr-xexamples/source/qmtpd-4/run7
-rw-r--r--examples/source/qmtpd-4/type1
-rw-r--r--examples/source/smtpd-4-log/dependencies1
-rw-r--r--examples/source/smtpd-4-log/producer1
-rwxr-xr-xexamples/source/smtpd-4-log/run4
-rw-r--r--examples/source/smtpd-4-log/type1
-rw-r--r--examples/source/smtpd-4/data/rules/ip4/0.0.0.0_0/allow0
-rw-r--r--examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/allow0
-rw-r--r--examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/env/RELAYCLIENT1
-rw-r--r--examples/source/smtpd-4/dependencies2
-rw-r--r--examples/source/smtpd-4/logger1
-rw-r--r--examples/source/smtpd-4/notification-fd1
-rwxr-xr-xexamples/source/smtpd-4/run8
-rw-r--r--examples/source/smtpd-4/type1
-rw-r--r--examples/source/sshd-4-log/dependencies1
-rw-r--r--examples/source/sshd-4-log/producer1
-rwxr-xr-xexamples/source/sshd-4-log/run4
-rw-r--r--examples/source/sshd-4-log/type1
-rw-r--r--examples/source/sshd-4/data/rules/ip4/0.0.0.0_0/deny0
-rw-r--r--examples/source/sshd-4/data/rules/ip4/192.168.0.0_22/allow0
-rw-r--r--examples/source/sshd-4/dependencies1
-rw-r--r--examples/source/sshd-4/logger1
-rw-r--r--examples/source/sshd-4/notification-fd1
-rwxr-xr-xexamples/source/sshd-4/run7
-rw-r--r--examples/source/sshd-4/type1
-rw-r--r--examples/source/syslogd-log/dependencies1
-rw-r--r--examples/source/syslogd-log/producer1
-rwxr-xr-xexamples/source/syslogd-log/run4
-rw-r--r--examples/source/syslogd-log/type1
-rw-r--r--examples/source/syslogd-srv/dependencies1
-rw-r--r--examples/source/syslogd-srv/logger1
-rw-r--r--examples/source/syslogd-srv/notification-fd1
-rwxr-xr-xexamples/source/syslogd-srv/run8
-rw-r--r--examples/source/syslogd-srv/type1
-rw-r--r--examples/source/syslogd/contents2
-rw-r--r--examples/source/syslogd/type1
-rw-r--r--examples/source/taiclockd-4-log/dependencies1
-rw-r--r--examples/source/taiclockd-4-log/producer1
-rwxr-xr-xexamples/source/taiclockd-4-log/run4
-rw-r--r--examples/source/taiclockd-4-log/type1
-rw-r--r--examples/source/taiclockd-4/dependencies1
-rw-r--r--examples/source/taiclockd-4/logger1
-rwxr-xr-xexamples/source/taiclockd-4/run6
-rw-r--r--examples/source/taiclockd-4/type1
-rw-r--r--examples/source/udhcpc-eth3-log/dependencies1
-rw-r--r--examples/source/udhcpc-eth3-log/producer1
-rwxr-xr-xexamples/source/udhcpc-eth3-log/run4
-rw-r--r--examples/source/udhcpc-eth3-log/type1
-rw-r--r--examples/source/udhcpc-eth3/dependencies2
-rw-r--r--examples/source/udhcpc-eth3/logger1
-rw-r--r--examples/source/udhcpc-eth3/notification-fd1
-rwxr-xr-xexamples/source/udhcpc-eth3/run5
-rw-r--r--examples/source/udhcpc-eth3/type1
-rw-r--r--examples/source/udhcpd-wlan0-log/dependencies1
-rw-r--r--examples/source/udhcpd-wlan0-log/producer1
-rwxr-xr-xexamples/source/udhcpd-wlan0-log/run4
-rw-r--r--examples/source/udhcpd-wlan0-log/type1
-rw-r--r--examples/source/udhcpd-wlan0/dependencies2
-rw-r--r--examples/source/udhcpd-wlan0/logger1
-rwxr-xr-xexamples/source/udhcpd-wlan0/run4
-rw-r--r--examples/source/udhcpd-wlan0/type1
-rw-r--r--examples/source/wan/contents2
-rw-r--r--examples/source/wan/type1
255 files changed, 553 insertions, 3 deletions
diff --git a/doc/s6-rc-compile.html b/doc/s6-rc-compile.html
index 49b4b6d..1464ea5 100644
--- a/doc/s6-rc-compile.html
+++ b/doc/s6-rc-compile.html
@@ -283,10 +283,15 @@ automatically start the logger beforehand if it's not already up. </li>
 of service definition directories, which is actually a working, valid set for a
 Linux system running
 <a href="http://busybox.net/">busybox</a> and the
-<a href="http://skarnet.org/software/">skarnet.org</a> packages. You can compile
-it with <tt>s6-rc-compile /tmp/compiled examples/source</tt>, then examine the
+<a href="http://skarnet.org/software/">skarnet.org</a> packages; of course, only
+the service definition set has been kept, and private information has been
+removed, so it won't work out-of-the-box without the proper specific files,
+notably configuration in <tt>/etc/</tt> - but nevertheless, you can browse the
+source and understand what it does, and adapt it to your own needs. It will
+compile as is with
+<tt>s6-rc-compile</tt>, and you can examine the
 resulting compiled database with
-<tt><a href="s6-rc-db.html">s6-rc-db</a> -c /tmp/compiled <em>subcommand</em></tt>.
+<tt><a href="s6-rc-db.html">s6-rc-db</a></tt>.
 </p>
 
 </body>
diff --git a/examples/README b/examples/README
new file mode 100644
index 0000000..0742098
--- /dev/null
+++ b/examples/README
@@ -0,0 +1,13 @@
+ An example set of service definition directories.
+
+ ok-all is the bundle containing all the services used
+for normal operation of the machine this set has been taken
+out of; the stage 2 init script of this machine is basically
+"s6-rc-init && s6-rc change ok-all".
+
+ ok-all contains ok-local, ok-lan and ok-wan, all bundles
+each containing their own services.
+
+ "00" is the service at the bottom of the dependency graph.
+So 00/up is the first script that is run by the initial
+"s6-rc change ok-all" command.
diff --git a/examples/source/00/down b/examples/source/00/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source/00/down
@@ -0,0 +1 @@
+
diff --git a/examples/source/00/type b/examples/source/00/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/00/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/00/up b/examples/source/00/up
new file mode 100644
index 0000000..b0b010a
--- /dev/null
+++ b/examples/source/00/up
@@ -0,0 +1,2 @@
+if { s6-echo "init-stage2 starting." }
+s6-hostname foo.example.com
diff --git a/examples/source/devd-log/dependencies b/examples/source/devd-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/devd-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/devd-log/producer b/examples/source/devd-log/producer
new file mode 100644
index 0000000..0b3e805
--- /dev/null
+++ b/examples/source/devd-log/producer
@@ -0,0 +1 @@
+devd
diff --git a/examples/source/devd-log/run b/examples/source/devd-log/run
new file mode 100755
index 0000000..2a5918f
--- /dev/null
+++ b/examples/source/devd-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid syslog
+exec -c
+s6-log t s1000000 n20 /var/log/devd
diff --git a/examples/source/devd-log/type b/examples/source/devd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/devd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/devd/dependencies b/examples/source/devd/dependencies
new file mode 100644
index 0000000..f0f7224
--- /dev/null
+++ b/examples/source/devd/dependencies
@@ -0,0 +1,2 @@
+init-devtmpfs
+mount-sys
diff --git a/examples/source/devd/logger b/examples/source/devd/logger
new file mode 100644
index 0000000..09c60aa
--- /dev/null
+++ b/examples/source/devd/logger
@@ -0,0 +1 @@
+devd-log
diff --git a/examples/source/devd/run b/examples/source/devd/run
new file mode 100755
index 0000000..ad97de9
--- /dev/null
+++ b/examples/source/devd/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+exec -c
+s6-devd
+mdev
diff --git a/examples/source/devd/type b/examples/source/devd/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/devd/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/dns-cache-log/dependencies b/examples/source/dns-cache-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/dns-cache-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/dns-cache-log/producer b/examples/source/dns-cache-log/producer
new file mode 100644
index 0000000..d51d8a1
--- /dev/null
+++ b/examples/source/dns-cache-log/producer
@@ -0,0 +1 @@
+dns-cache
diff --git a/examples/source/dns-cache-log/run b/examples/source/dns-cache-log/run
new file mode 100755
index 0000000..4177eaa
--- /dev/null
+++ b/examples/source/dns-cache-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid dnslog
+exec -c
+s6-log t s1000000 n20 /var/log/dns-cache
diff --git a/examples/source/dns-cache-log/type b/examples/source/dns-cache-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/dns-cache-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/dns-cache/data/root/ip/127.0.0.1 b/examples/source/dns-cache/data/root/ip/127.0.0.1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source/dns-cache/data/root/ip/127.0.0.1
diff --git a/examples/source/dns-cache/data/root/ip/192.168.0 b/examples/source/dns-cache/data/root/ip/192.168.0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source/dns-cache/data/root/ip/192.168.0
diff --git a/examples/source/dns-cache/data/root/ip/192.168.1 b/examples/source/dns-cache/data/root/ip/192.168.1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source/dns-cache/data/root/ip/192.168.1
diff --git a/examples/source/dns-cache/data/root/ip/192.168.2 b/examples/source/dns-cache/data/root/ip/192.168.2
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source/dns-cache/data/root/ip/192.168.2
diff --git a/examples/source/dns-cache/data/root/ip/192.168.3 b/examples/source/dns-cache/data/root/ip/192.168.3
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source/dns-cache/data/root/ip/192.168.3
diff --git a/examples/source/dns-cache/data/root/ip/192.168.4 b/examples/source/dns-cache/data/root/ip/192.168.4
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source/dns-cache/data/root/ip/192.168.4
diff --git a/examples/source/dns-cache/data/root/servers/168.192.in-addr.arpa b/examples/source/dns-cache/data/root/servers/168.192.in-addr.arpa
new file mode 120000
index 0000000..caa12a8
--- /dev/null
+++ b/examples/source/dns-cache/data/root/servers/168.192.in-addr.arpa
@@ -0,0 +1 @@
+example.com
\ No newline at end of file
diff --git a/examples/source/dns-cache/data/root/servers/@ b/examples/source/dns-cache/data/root/servers/@
new file mode 100644
index 0000000..ca40b38
--- /dev/null
+++ b/examples/source/dns-cache/data/root/servers/@
@@ -0,0 +1,13 @@
+198.41.0.4
+192.228.79.201
+192.33.4.12
+128.8.10.90
+192.203.230.10
+192.5.5.241
+192.112.36.4
+128.63.2.53
+192.36.148.17
+192.58.128.30
+193.0.14.129
+199.7.83.42
+202.12.27.33
diff --git a/examples/source/dns-cache/data/root/servers/example.com b/examples/source/dns-cache/data/root/servers/example.com
new file mode 100644
index 0000000..0c4b6f6
--- /dev/null
+++ b/examples/source/dns-cache/data/root/servers/example.com
@@ -0,0 +1 @@
+192.168.1.1
diff --git a/examples/source/dns-cache/dependencies b/examples/source/dns-cache/dependencies
new file mode 100644
index 0000000..112b3f2
--- /dev/null
+++ b/examples/source/dns-cache/dependencies
@@ -0,0 +1,2 @@
+init-urandom
+init-lan
diff --git a/examples/source/dns-cache/env/CACHESIZE b/examples/source/dns-cache/env/CACHESIZE
new file mode 100644
index 0000000..8425fb4
--- /dev/null
+++ b/examples/source/dns-cache/env/CACHESIZE
@@ -0,0 +1 @@
+2097152
diff --git a/examples/source/dns-cache/env/IPSEND b/examples/source/dns-cache/env/IPSEND
new file mode 100644
index 0000000..d690dc0
--- /dev/null
+++ b/examples/source/dns-cache/env/IPSEND
@@ -0,0 +1 @@
+0.0.0.0
diff --git a/examples/source/dns-cache/env/ROOT b/examples/source/dns-cache/env/ROOT
new file mode 100644
index 0000000..d4dba8d
--- /dev/null
+++ b/examples/source/dns-cache/env/ROOT
@@ -0,0 +1 @@
+/run/service/dns-cache/data/root
diff --git a/examples/source/dns-cache/logger b/examples/source/dns-cache/logger
new file mode 100644
index 0000000..54ef42e
--- /dev/null
+++ b/examples/source/dns-cache/logger
@@ -0,0 +1 @@
+dns-cache-log
diff --git a/examples/source/dns-cache/run b/examples/source/dns-cache/run
new file mode 100755
index 0000000..b364c97
--- /dev/null
+++ b/examples/source/dns-cache/run
@@ -0,0 +1,14 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envuidgid dnscache
+s6-envdir env
+import ETH0_IP4
+export IP ${ETH0_IP4}
+s6-softlimit -m 4000000
+pipeline -d
+{
+  redirfd -r 0 /dev/urandom
+  s6-head -c 128
+}
+unexport LASTPID
+dnscache
diff --git a/examples/source/dns-cache/type b/examples/source/dns-cache/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/dns-cache/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/dns-server-tcp-4-log/dependencies b/examples/source/dns-server-tcp-4-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/dns-server-tcp-4-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/dns-server-tcp-4-log/producer b/examples/source/dns-server-tcp-4-log/producer
new file mode 100644
index 0000000..eed0fe9
--- /dev/null
+++ b/examples/source/dns-server-tcp-4-log/producer
@@ -0,0 +1 @@
+dns-server-tcp-4
diff --git a/examples/source/dns-server-tcp-4-log/run b/examples/source/dns-server-tcp-4-log/run
new file mode 100755
index 0000000..1dd5335
--- /dev/null
+++ b/examples/source/dns-server-tcp-4-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid dnslog
+exec -c
+s6-log t s1000000 n20 /var/log/dns-server-tcp-4
diff --git a/examples/source/dns-server-tcp-4-log/type b/examples/source/dns-server-tcp-4-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/dns-server-tcp-4-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/dns-server-tcp-4/dependencies b/examples/source/dns-server-tcp-4/dependencies
new file mode 100644
index 0000000..cd7cc57
--- /dev/null
+++ b/examples/source/dns-server-tcp-4/dependencies
@@ -0,0 +1,2 @@
+init-lan
+mount-rwfs
diff --git a/examples/source/dns-server-tcp-4/logger b/examples/source/dns-server-tcp-4/logger
new file mode 100644
index 0000000..d437be5
--- /dev/null
+++ b/examples/source/dns-server-tcp-4/logger
@@ -0,0 +1 @@
+dns-server-tcp-4-log
diff --git a/examples/source/dns-server-tcp-4/notification-fd b/examples/source/dns-server-tcp-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/dns-server-tcp-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/dns-server-tcp-4/run b/examples/source/dns-server-tcp-4/run
new file mode 100755
index 0000000..d418999
--- /dev/null
+++ b/examples/source/dns-server-tcp-4/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envuidgid dnsserve
+export ROOT /home/dns
+export AXFR ""
+import -ui ETH1_IP4
+fdmove 1 3
+s6-tcpserver4 -v 2 -1 -- ${ETH1_IP4} 53
+axfrdns
diff --git a/examples/source/dns-server-tcp-4/type b/examples/source/dns-server-tcp-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/dns-server-tcp-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/dns-server-udp-log/dependencies b/examples/source/dns-server-udp-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/dns-server-udp-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/dns-server-udp-log/producer b/examples/source/dns-server-udp-log/producer
new file mode 100644
index 0000000..6517ecf
--- /dev/null
+++ b/examples/source/dns-server-udp-log/producer
@@ -0,0 +1 @@
+dns-server-udp
diff --git a/examples/source/dns-server-udp-log/run b/examples/source/dns-server-udp-log/run
new file mode 100755
index 0000000..0782e5a
--- /dev/null
+++ b/examples/source/dns-server-udp-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid dnslog
+exec -c
+s6-log t s1000000 n20 /var/log/dns-server-udp
diff --git a/examples/source/dns-server-udp-log/type b/examples/source/dns-server-udp-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/dns-server-udp-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/dns-server-udp/dependencies b/examples/source/dns-server-udp/dependencies
new file mode 100644
index 0000000..cd7cc57
--- /dev/null
+++ b/examples/source/dns-server-udp/dependencies
@@ -0,0 +1,2 @@
+init-lan
+mount-rwfs
diff --git a/examples/source/dns-server-udp/logger b/examples/source/dns-server-udp/logger
new file mode 100644
index 0000000..81fc8f4
--- /dev/null
+++ b/examples/source/dns-server-udp/logger
@@ -0,0 +1 @@
+dns-server-udp-log
diff --git a/examples/source/dns-server-udp/run b/examples/source/dns-server-udp/run
new file mode 100755
index 0000000..373ccbc
--- /dev/null
+++ b/examples/source/dns-server-udp/run
@@ -0,0 +1,8 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-softlimit -d 300000
+s6-envuidgid dnsserve
+import -i ETH1_IP4
+export IP ${ETH1_IP4}
+export ROOT /home/dns
+tinydns
diff --git a/examples/source/dns-server-udp/type b/examples/source/dns-server-udp/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/dns-server-udp/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/fdholder-log/dependencies b/examples/source/fdholder-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/fdholder-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/fdholder-log/producer b/examples/source/fdholder-log/producer
new file mode 100644
index 0000000..c9e44ab
--- /dev/null
+++ b/examples/source/fdholder-log/producer
@@ -0,0 +1 @@
+fdholder
diff --git a/examples/source/fdholder-log/run b/examples/source/fdholder-log/run
new file mode 100755
index 0000000..6cde268
--- /dev/null
+++ b/examples/source/fdholder-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid fdhlog
+exec -c
+s6-log s1000000 n20 t /var/log/fdholder
diff --git a/examples/source/fdholder-log/type b/examples/source/fdholder-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/fdholder-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/fdholder/data/rules/uid/0/allow b/examples/source/fdholder/data/rules/uid/0/allow
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source/fdholder/data/rules/uid/0/allow
diff --git a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_GETDUMP b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_GETDUMP
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_GETDUMP
@@ -0,0 +1 @@
+1
diff --git a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_RETRIEVE_REGEX b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_RETRIEVE_REGEX
new file mode 100644
index 0000000..8d98f9d
--- /dev/null
+++ b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_RETRIEVE_REGEX
@@ -0,0 +1 @@
+.*
diff --git a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_SETDUMP b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_SETDUMP
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_SETDUMP
@@ -0,0 +1 @@
+1
diff --git a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_STORE_REGEX b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_STORE_REGEX
new file mode 100644
index 0000000..8d98f9d
--- /dev/null
+++ b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_STORE_REGEX
@@ -0,0 +1 @@
+.*
diff --git a/examples/source/fdholder/dependencies b/examples/source/fdholder/dependencies
new file mode 100644
index 0000000..4daddb7
--- /dev/null
+++ b/examples/source/fdholder/dependencies
@@ -0,0 +1 @@
+00
diff --git a/examples/source/fdholder/logger b/examples/source/fdholder/logger
new file mode 100644
index 0000000..11f1ac2
--- /dev/null
+++ b/examples/source/fdholder/logger
@@ -0,0 +1 @@
+fdholder-log
diff --git a/examples/source/fdholder/notification-fd b/examples/source/fdholder/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/fdholder/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/fdholder/run b/examples/source/fdholder/run
new file mode 100755
index 0000000..c511dea
--- /dev/null
+++ b/examples/source/fdholder/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envuidgid fdh
+fdmove 1 3
+s6-fdholder-daemon -v 2 -1 -T 20000 -U -i data/rules -- s
diff --git a/examples/source/fdholder/type b/examples/source/fdholder/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/fdholder/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/fifodir-cleanup/dependencies b/examples/source/fifodir-cleanup/dependencies
new file mode 100644
index 0000000..4daddb7
--- /dev/null
+++ b/examples/source/fifodir-cleanup/dependencies
@@ -0,0 +1 @@
+00
diff --git a/examples/source/fifodir-cleanup/run b/examples/source/fifodir-cleanup/run
new file mode 100755
index 0000000..5a34a9b
--- /dev/null
+++ b/examples/source/fifodir-cleanup/run
@@ -0,0 +1,15 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+if
+{
+  forbacktickx -ep -0 i { s6-ls -0 /service }
+  import -u i
+  foreground
+  {
+    if { s6-test -d /service/${i}/log }
+    s6-cleanfifodir /service/${i}/log/event
+  }
+  s6-cleanfifodir /service/${i}/event
+}
+s6-setuidgid nobody
+s6-sleep 86400
diff --git a/examples/source/fifodir-cleanup/type b/examples/source/fifodir-cleanup/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/fifodir-cleanup/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/hostapd-log/dependencies b/examples/source/hostapd-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/hostapd-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/hostapd-log/producer b/examples/source/hostapd-log/producer
new file mode 100644
index 0000000..f86cc31
--- /dev/null
+++ b/examples/source/hostapd-log/producer
@@ -0,0 +1 @@
+hostapd
diff --git a/examples/source/hostapd-log/run b/examples/source/hostapd-log/run
new file mode 100755
index 0000000..6a4554f
--- /dev/null
+++ b/examples/source/hostapd-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid wifilog
+exec -c
+s6-log s1000000 n20 t /var/log/hostapd
diff --git a/examples/source/hostapd-log/type b/examples/source/hostapd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/hostapd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/hostapd/dependencies b/examples/source/hostapd/dependencies
new file mode 100644
index 0000000..ceb3e6e
--- /dev/null
+++ b/examples/source/hostapd/dependencies
@@ -0,0 +1 @@
+init-wlan0
diff --git a/examples/source/hostapd/logger b/examples/source/hostapd/logger
new file mode 100644
index 0000000..b6e1e02
--- /dev/null
+++ b/examples/source/hostapd/logger
@@ -0,0 +1 @@
+hostapd-log
diff --git a/examples/source/hostapd/run b/examples/source/hostapd/run
new file mode 100755
index 0000000..88ac3aa
--- /dev/null
+++ b/examples/source/hostapd/run
@@ -0,0 +1,3 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+hostapd /etc/hostapd/hostapd.conf
diff --git a/examples/source/hostapd/type b/examples/source/hostapd/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/hostapd/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/httpd-4-log/dependencies b/examples/source/httpd-4-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/httpd-4-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/httpd-4-log/producer b/examples/source/httpd-4-log/producer
new file mode 100644
index 0000000..3dfc041
--- /dev/null
+++ b/examples/source/httpd-4-log/producer
@@ -0,0 +1 @@
+httpd-4
diff --git a/examples/source/httpd-4-log/run b/examples/source/httpd-4-log/run
new file mode 100755
index 0000000..549034f
--- /dev/null
+++ b/examples/source/httpd-4-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid publilog
+exec -c
+s6-log t s1000000 n20 /var/log/httpd-4
diff --git a/examples/source/httpd-4-log/type b/examples/source/httpd-4-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/httpd-4-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/httpd-4/dependencies b/examples/source/httpd-4/dependencies
new file mode 100644
index 0000000..cd7cc57
--- /dev/null
+++ b/examples/source/httpd-4/dependencies
@@ -0,0 +1,2 @@
+init-lan
+mount-rwfs
diff --git a/examples/source/httpd-4/logger b/examples/source/httpd-4/logger
new file mode 100644
index 0000000..9835bc1
--- /dev/null
+++ b/examples/source/httpd-4/logger
@@ -0,0 +1 @@
+httpd-4-log
diff --git a/examples/source/httpd-4/notification-fd b/examples/source/httpd-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/httpd-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/httpd-4/run b/examples/source/httpd-4/run
new file mode 100755
index 0000000..a2e3612
--- /dev/null
+++ b/examples/source/httpd-4/run
@@ -0,0 +1,8 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envuidgid www
+cd /home/www
+import -ui ETH0_IP4
+fdmove 1 3
+s6-tcpserver4 -v 2 -U -c 512 -1 -- ${ETH0_IP4} 80
+httpd -iv
diff --git a/examples/source/httpd-4/type b/examples/source/httpd-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/httpd-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/identd-4-log/dependencies b/examples/source/identd-4-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/identd-4-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/identd-4-log/producer b/examples/source/identd-4-log/producer
new file mode 100644
index 0000000..f3a2772
--- /dev/null
+++ b/examples/source/identd-4-log/producer
@@ -0,0 +1 @@
+identd-4
diff --git a/examples/source/identd-4-log/run b/examples/source/identd-4-log/run
new file mode 100755
index 0000000..042e07c
--- /dev/null
+++ b/examples/source/identd-4-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid identlog
+exec -c
+s6-log t s1000000 n20 /var/log/identd-4
diff --git a/examples/source/identd-4-log/type b/examples/source/identd-4-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/identd-4-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/identd-4/dependencies b/examples/source/identd-4/dependencies
new file mode 100644
index 0000000..6daf05b
--- /dev/null
+++ b/examples/source/identd-4/dependencies
@@ -0,0 +1 @@
+init-lan
diff --git a/examples/source/identd-4/logger b/examples/source/identd-4/logger
new file mode 100644
index 0000000..7b1014d
--- /dev/null
+++ b/examples/source/identd-4/logger
@@ -0,0 +1 @@
+identd-4-log
diff --git a/examples/source/identd-4/notification-fd b/examples/source/identd-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/identd-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/identd-4/run b/examples/source/identd-4/run
new file mode 100755
index 0000000..a3249d2
--- /dev/null
+++ b/examples/source/identd-4/run
@@ -0,0 +1,7 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envuidgid ident
+import -ui ETH0_IP4
+fdmove 1 3
+s6-tcpserver4 -v 1 -U -c 512 -1 -- ${ETH0_IP4} 113
+minidentd -vt 10000
diff --git a/examples/source/identd-4/type b/examples/source/identd-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/identd-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/init-coldplug/dependencies b/examples/source/init-coldplug/dependencies
new file mode 100644
index 0000000..9189f7f
--- /dev/null
+++ b/examples/source/init-coldplug/dependencies
@@ -0,0 +1,3 @@
+init-devtmpfs
+mount-sys
+devd
diff --git a/examples/source/init-coldplug/down b/examples/source/init-coldplug/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source/init-coldplug/down
@@ -0,0 +1 @@
+
diff --git a/examples/source/init-coldplug/type b/examples/source/init-coldplug/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-coldplug/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-coldplug/up b/examples/source/init-coldplug/up
new file mode 100644
index 0000000..fed6638
--- /dev/null
+++ b/examples/source/init-coldplug/up
@@ -0,0 +1 @@
+mdev -s
diff --git a/examples/source/init-devtmpfs/dependencies b/examples/source/init-devtmpfs/dependencies
new file mode 100644
index 0000000..4daddb7
--- /dev/null
+++ b/examples/source/init-devtmpfs/dependencies
@@ -0,0 +1 @@
+00
diff --git a/examples/source/init-devtmpfs/down b/examples/source/init-devtmpfs/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source/init-devtmpfs/down
@@ -0,0 +1 @@
+
diff --git a/examples/source/init-devtmpfs/type b/examples/source/init-devtmpfs/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-devtmpfs/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-devtmpfs/up b/examples/source/init-devtmpfs/up
new file mode 100644
index 0000000..1310210
--- /dev/null
+++ b/examples/source/init-devtmpfs/up
@@ -0,0 +1,11 @@
+if { mkdir -p -m 0755 -- /dev/pts }
+if { s6-mount -wt devpts -o noexec,nosuid,gid=0,mode=0600 devpts /dev/pts }
+if { s6-ln -s /proc/self/fd /dev/fd }
+if { s6-ln -s /proc/kcore /dev/core }
+if { s6-ln -s loop0 /dev/loop }
+if { s6-ln -s ram0 /dev/ram }
+if { s6-ln -s rtc0 /dev/rtc }
+if { s6-ln -s /run/shm /dev/shm }
+if { s6-ln -s fd/0 /dev/stdin }
+if { s6-ln -s fd/1 /dev/stdout }
+if { s6-ln -s fd/2 /dev/stderr }
diff --git a/examples/source/init-diskconfig/dependencies b/examples/source/init-diskconfig/dependencies
new file mode 100644
index 0000000..4daddb7
--- /dev/null
+++ b/examples/source/init-diskconfig/dependencies
@@ -0,0 +1 @@
+00
diff --git a/examples/source/init-diskconfig/down b/examples/source/init-diskconfig/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source/init-diskconfig/down
@@ -0,0 +1 @@
+
diff --git a/examples/source/init-diskconfig/type b/examples/source/init-diskconfig/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-diskconfig/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-diskconfig/up b/examples/source/init-diskconfig/up
new file mode 100644
index 0000000..9418910
--- /dev/null
+++ b/examples/source/init-diskconfig/up
@@ -0,0 +1,4 @@
+if { redirfd -w 1 /run/disk-devices/rofs s6-echo sda1 }
+if { redirfd -w 1 /run/disk-devices/rwfs s6-echo sda2 }
+if { redirfd -w 1 /run/disk-devices/syncfs s6-echo sda3 }
+if { redirfd -w 1 /run/disk-devices/swap s6-echo sda5 }
diff --git a/examples/source/init-eth3/dependencies b/examples/source/init-eth3/dependencies
new file mode 100644
index 0000000..6daf05b
--- /dev/null
+++ b/examples/source/init-eth3/dependencies
@@ -0,0 +1 @@
+init-lan
diff --git a/examples/source/init-eth3/down b/examples/source/init-eth3/down
new file mode 100644
index 0000000..8800e3e
--- /dev/null
+++ b/examples/source/init-eth3/down
@@ -0,0 +1 @@
+ip link set dev eth3 down
diff --git a/examples/source/init-eth3/type b/examples/source/init-eth3/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-eth3/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-eth3/up b/examples/source/init-eth3/up
new file mode 100644
index 0000000..a771926
--- /dev/null
+++ b/examples/source/init-eth3/up
@@ -0,0 +1 @@
+ip link set dev eth3 up
diff --git a/examples/source/init-lan/dependencies b/examples/source/init-lan/dependencies
new file mode 100644
index 0000000..79607c6
--- /dev/null
+++ b/examples/source/init-lan/dependencies
@@ -0,0 +1,2 @@
+init-sysctl
+mount-cgroups
diff --git a/examples/source/init-lan/down b/examples/source/init-lan/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source/init-lan/down
@@ -0,0 +1 @@
+
diff --git a/examples/source/init-lan/type b/examples/source/init-lan/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-lan/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-lan/up b/examples/source/init-lan/up
new file mode 100644
index 0000000..9877c14
--- /dev/null
+++ b/examples/source/init-lan/up
@@ -0,0 +1,11 @@
+multisubstitute
+{
+  import -i ETH0_IP4
+  import -i ETH1_IP4
+  import -i ETH2_IP4
+}
+
+if { ifconfig lo 127.0.0.1 netmask 255.0.0.0 }
+if { ifconfig eth0 ${ETH0_IP4} netmask 255.255.255.0 }
+if { ifconfig eth1 ${ETH1_IP4} netmask 255.255.255.0 }
+if { ifconfig eth2 ${ETH2_IP4} netmask 255.255.255.0 }
diff --git a/examples/source/init-sysctl/dependencies b/examples/source/init-sysctl/dependencies
new file mode 100644
index 0000000..0df58a3
--- /dev/null
+++ b/examples/source/init-sysctl/dependencies
@@ -0,0 +1 @@
+mount-proc
diff --git a/examples/source/init-sysctl/down b/examples/source/init-sysctl/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source/init-sysctl/down
@@ -0,0 +1 @@
+
diff --git a/examples/source/init-sysctl/type b/examples/source/init-sysctl/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-sysctl/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-sysctl/up b/examples/source/init-sysctl/up
new file mode 100644
index 0000000..e3096b6
--- /dev/null
+++ b/examples/source/init-sysctl/up
@@ -0,0 +1,6 @@
+redirfd -r 0 /etc/sysctl.txt
+forstdin -nCd"\n" -- LINE
+import -u LINE
+multidefine -C $LINE { CTL VALUE }
+redirfd -w 1 /proc/sys/$CTL
+s6-echo -- $VALUE
diff --git a/examples/source/init-urandom/dependencies b/examples/source/init-urandom/dependencies
new file mode 100644
index 0000000..4daddb7
--- /dev/null
+++ b/examples/source/init-urandom/dependencies
@@ -0,0 +1 @@
+00
diff --git a/examples/source/init-urandom/down b/examples/source/init-urandom/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source/init-urandom/down
@@ -0,0 +1 @@
+
diff --git a/examples/source/init-urandom/type b/examples/source/init-urandom/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-urandom/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-urandom/up b/examples/source/init-urandom/up
new file mode 100644
index 0000000..a18b4b2
--- /dev/null
+++ b/examples/source/init-urandom/up
@@ -0,0 +1,3 @@
+redirfd -w 1 /dev/urandom
+pipeline { if { s6-clock } s6-clock }
+sha512sum
diff --git a/examples/source/init-wlan0/dependencies b/examples/source/init-wlan0/dependencies
new file mode 100644
index 0000000..2dcd031
--- /dev/null
+++ b/examples/source/init-wlan0/dependencies
@@ -0,0 +1 @@
+ok-local
diff --git a/examples/source/init-wlan0/down b/examples/source/init-wlan0/down
new file mode 100644
index 0000000..bb15015
--- /dev/null
+++ b/examples/source/init-wlan0/down
@@ -0,0 +1 @@
+modprobe -r ath9k
diff --git a/examples/source/init-wlan0/type b/examples/source/init-wlan0/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-wlan0/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-wlan0/up b/examples/source/init-wlan0/up
new file mode 100644
index 0000000..26ed7ca
--- /dev/null
+++ b/examples/source/init-wlan0/up
@@ -0,0 +1,5 @@
+foreground { modprobe ath9k blink=1 }
+unexport ?
+if { iw reg set FR }
+import -i WLAN0_IP4
+ifconfig wlan0 ${WLAN0_IP4} netmask 255.255.255.0
diff --git a/examples/source/klogd-log/dependencies b/examples/source/klogd-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/klogd-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/klogd-log/producer b/examples/source/klogd-log/producer
new file mode 100644
index 0000000..3a77aac
--- /dev/null
+++ b/examples/source/klogd-log/producer
@@ -0,0 +1 @@
+klogd-srv
diff --git a/examples/source/klogd-log/run b/examples/source/klogd-log/run
new file mode 100755
index 0000000..d9659e7
--- /dev/null
+++ b/examples/source/klogd-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid klog
+exec -c
+s6-log t s1000000 n20 /var/log/klogd
diff --git a/examples/source/klogd-log/type b/examples/source/klogd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/klogd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/klogd-srv/dependencies b/examples/source/klogd-srv/dependencies
new file mode 100644
index 0000000..0df58a3
--- /dev/null
+++ b/examples/source/klogd-srv/dependencies
@@ -0,0 +1 @@
+mount-proc
diff --git a/examples/source/klogd-srv/logger b/examples/source/klogd-srv/logger
new file mode 100644
index 0000000..2f21a8f
--- /dev/null
+++ b/examples/source/klogd-srv/logger
@@ -0,0 +1 @@
+klogd-log
diff --git a/examples/source/klogd-srv/run b/examples/source/klogd-srv/run
new file mode 100755
index 0000000..453b55b
--- /dev/null
+++ b/examples/source/klogd-srv/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+redirfd -r 0 /proc/kmsg
+exec -c
+ucspilogd
diff --git a/examples/source/klogd-srv/type b/examples/source/klogd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/klogd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/klogd/contents b/examples/source/klogd/contents
new file mode 100644
index 0000000..5bcde2e
--- /dev/null
+++ b/examples/source/klogd/contents
@@ -0,0 +1,2 @@
+klogd-srv
+klogd-log
diff --git a/examples/source/klogd/type b/examples/source/klogd/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source/klogd/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source/mount-cgroups/dependencies b/examples/source/mount-cgroups/dependencies
new file mode 100644
index 0000000..0a09446
--- /dev/null
+++ b/examples/source/mount-cgroups/dependencies
@@ -0,0 +1,2 @@
+mount-sys
+mount-proc
diff --git a/examples/source/mount-cgroups/down b/examples/source/mount-cgroups/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source/mount-cgroups/down
@@ -0,0 +1 @@
+
diff --git a/examples/source/mount-cgroups/type b/examples/source/mount-cgroups/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/mount-cgroups/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/mount-cgroups/up b/examples/source/mount-cgroups/up
new file mode 100644
index 0000000..5c62b47
--- /dev/null
+++ b/examples/source/mount-cgroups/up
@@ -0,0 +1,10 @@
+if { mkdir -p -m 0755 /sys/fs/cgroup }
+if { s6-mount -wt tmpfs cgroup /sys/fs/cgroup }
+redirfd -r 0 /proc/cgroups
+pipeline { s6-tail -n +2 }
+pipeline { s6-cut -d"\t" -f1 }
+pipeline { s6-grep -vF -- devices }
+forstdin -d"\n" -- i
+import -u i
+if { s6-mkdir /sys/fs/cgroup/${i} }
+s6-mount -t cgroup -o ${i} -- cgroup /sys/fs/cgroup/${i}
diff --git a/examples/source/mount-disks/contents b/examples/source/mount-disks/contents
new file mode 100644
index 0000000..dc8378d
--- /dev/null
+++ b/examples/source/mount-disks/contents
@@ -0,0 +1,3 @@
+mount-rwfs
+mount-sync
+mount-swap
diff --git a/examples/source/mount-disks/type b/examples/source/mount-disks/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source/mount-disks/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source/mount-proc/dependencies b/examples/source/mount-proc/dependencies
new file mode 100644
index 0000000..4daddb7
--- /dev/null
+++ b/examples/source/mount-proc/dependencies
@@ -0,0 +1 @@
+00
diff --git a/examples/source/mount-proc/down b/examples/source/mount-proc/down
new file mode 100644
index 0000000..57465e9
--- /dev/null
+++ b/examples/source/mount-proc/down
@@ -0,0 +1 @@
+s6-umount /proc
diff --git a/examples/source/mount-proc/type b/examples/source/mount-proc/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/mount-proc/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/mount-proc/up b/examples/source/mount-proc/up
new file mode 100644
index 0000000..f198029
--- /dev/null
+++ b/examples/source/mount-proc/up
@@ -0,0 +1 @@
+s6-mount -wt proc proc /proc
diff --git a/examples/source/mount-rwfs/dependencies b/examples/source/mount-rwfs/dependencies
new file mode 100644
index 0000000..9bd14f7
--- /dev/null
+++ b/examples/source/mount-rwfs/dependencies
@@ -0,0 +1 @@
+init-diskconfig
diff --git a/examples/source/mount-rwfs/down b/examples/source/mount-rwfs/down
new file mode 100644
index 0000000..00b6eb1
--- /dev/null
+++ b/examples/source/mount-rwfs/down
@@ -0,0 +1 @@
+s6-umount /mnt/rwfs
diff --git a/examples/source/mount-rwfs/type b/examples/source/mount-rwfs/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/mount-rwfs/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/mount-rwfs/up b/examples/source/mount-rwfs/up
new file mode 100644
index 0000000..50b5116
--- /dev/null
+++ b/examples/source/mount-rwfs/up
@@ -0,0 +1,3 @@
+s6-envdir -i /run/disk-devices
+import -i rwfs
+s6-mount -wt ext4 -o barrier=0,nodev /dev/${rwfs} /mnt/rwfs
diff --git a/examples/source/mount-swap/dependencies b/examples/source/mount-swap/dependencies
new file mode 100644
index 0000000..9bd14f7
--- /dev/null
+++ b/examples/source/mount-swap/dependencies
@@ -0,0 +1 @@
+init-diskconfig
diff --git a/examples/source/mount-swap/down b/examples/source/mount-swap/down
new file mode 100644
index 0000000..e0211d6
--- /dev/null
+++ b/examples/source/mount-swap/down
@@ -0,0 +1,3 @@
+s6-envdir -i /run/disk-devices
+import -i swap
+s6-swapoff /dev/${swap}
diff --git a/examples/source/mount-swap/type b/examples/source/mount-swap/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/mount-swap/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/mount-swap/up b/examples/source/mount-swap/up
new file mode 100644
index 0000000..af17571
--- /dev/null
+++ b/examples/source/mount-swap/up
@@ -0,0 +1,3 @@
+s6-envdir -i /run/disk-devices
+import -i swap
+s6-swapon /dev/${swap}
diff --git a/examples/source/mount-sync/dependencies b/examples/source/mount-sync/dependencies
new file mode 100644
index 0000000..9bd14f7
--- /dev/null
+++ b/examples/source/mount-sync/dependencies
@@ -0,0 +1 @@
+init-diskconfig
diff --git a/examples/source/mount-sync/down b/examples/source/mount-sync/down
new file mode 100644
index 0000000..1f0fdc1
--- /dev/null
+++ b/examples/source/mount-sync/down
@@ -0,0 +1 @@
+s6-umount /mnt/syncfs
diff --git a/examples/source/mount-sync/type b/examples/source/mount-sync/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/mount-sync/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/mount-sync/up b/examples/source/mount-sync/up
new file mode 100644
index 0000000..5832a83
--- /dev/null
+++ b/examples/source/mount-sync/up
@@ -0,0 +1,3 @@
+s6-envdir -i /run/disk-devices
+import -i syncfs
+s6-mount -wt ext4 -o barrier=0,sync,nodev,noexec,nosuid /dev/${syncfs} /mnt/syncfs
diff --git a/examples/source/mount-sys/dependencies b/examples/source/mount-sys/dependencies
new file mode 100644
index 0000000..4daddb7
--- /dev/null
+++ b/examples/source/mount-sys/dependencies
@@ -0,0 +1 @@
+00
diff --git a/examples/source/mount-sys/down b/examples/source/mount-sys/down
new file mode 100644
index 0000000..dd1daca
--- /dev/null
+++ b/examples/source/mount-sys/down
@@ -0,0 +1 @@
+s6-umount /sys
diff --git a/examples/source/mount-sys/type b/examples/source/mount-sys/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/mount-sys/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/mount-sys/up b/examples/source/mount-sys/up
new file mode 100644
index 0000000..780be7b
--- /dev/null
+++ b/examples/source/mount-sys/up
@@ -0,0 +1 @@
+s6-mount -wt sysfs sys /sys
diff --git a/examples/source/ntpclient-log/dependencies b/examples/source/ntpclient-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/ntpclient-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/ntpclient-log/producer b/examples/source/ntpclient-log/producer
new file mode 100644
index 0000000..a0f3ade
--- /dev/null
+++ b/examples/source/ntpclient-log/producer
@@ -0,0 +1 @@
+ntpclient
diff --git a/examples/source/ntpclient-log/run b/examples/source/ntpclient-log/run
new file mode 100755
index 0000000..80d7b5b
--- /dev/null
+++ b/examples/source/ntpclient-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid ntplog
+exec -c
+s6-log t /var/log/ntpclient
diff --git a/examples/source/ntpclient-log/type b/examples/source/ntpclient-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ntpclient-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/ntpclient/dependencies b/examples/source/ntpclient/dependencies
new file mode 100644
index 0000000..8b11827
--- /dev/null
+++ b/examples/source/ntpclient/dependencies
@@ -0,0 +1,2 @@
+wan
+dns-cache
diff --git a/examples/source/ntpclient/logger b/examples/source/ntpclient/logger
new file mode 100644
index 0000000..c51cd0b
--- /dev/null
+++ b/examples/source/ntpclient/logger
@@ -0,0 +1 @@
+ntpclient-log
diff --git a/examples/source/ntpclient/run b/examples/source/ntpclient/run
new file mode 100755
index 0000000..be19c56
--- /dev/null
+++ b/examples/source/ntpclient/run
@@ -0,0 +1,20 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+if
+{
+  pipeline
+  {
+    s6-setuidgid ntp
+    backtick -n NTPSERVERIP
+    {
+      pipeline { s6-dnsip4 -t 16000 0.fr.pool.ntp.org }
+      s6-head -n 1
+    }
+    import -u NTPSERVERIP
+    s6-sntpclock -v 2 $NTPSERVERIP
+  }
+  s6-clockadd -e 120000
+}
+s6-setuidgid nobody
+s6-sleep 14400
diff --git a/examples/source/ntpclient/type b/examples/source/ntpclient/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ntpclient/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/ok-all/contents b/examples/source/ok-all/contents
new file mode 100644
index 0000000..461a76e
--- /dev/null
+++ b/examples/source/ok-all/contents
@@ -0,0 +1,3 @@
+ok-local
+ok-lan
+ok-wan
diff --git a/examples/source/ok-all/type b/examples/source/ok-all/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source/ok-all/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source/ok-lan/contents b/examples/source/ok-lan/contents
new file mode 100644
index 0000000..a3d9d8d
--- /dev/null
+++ b/examples/source/ok-lan/contents
@@ -0,0 +1,11 @@
+dns-cache
+dns-server-tcp-4
+dns-server-udp
+httpd-4
+identd-4
+qmtpd-4
+smtpd-4
+sshd-4
+taiclockd-4
+hostapd
+udhcpd-wlan0
diff --git a/examples/source/ok-lan/type b/examples/source/ok-lan/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source/ok-lan/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source/ok-local/contents b/examples/source/ok-local/contents
new file mode 100644
index 0000000..188d377
--- /dev/null
+++ b/examples/source/ok-local/contents
@@ -0,0 +1,10 @@
+devd
+syslogd
+klogd
+fdholder
+mount-disks
+mount-cgroups
+init-coldplug
+init-sysctl
+init-urandom
+fifodir-cleanup
diff --git a/examples/source/ok-local/type b/examples/source/ok-local/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source/ok-local/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source/ok-wan/contents b/examples/source/ok-wan/contents
new file mode 100644
index 0000000..15353b4
--- /dev/null
+++ b/examples/source/ok-wan/contents
@@ -0,0 +1,3 @@
+wan
+qmail
+ntpclient
diff --git a/examples/source/ok-wan/type b/examples/source/ok-wan/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source/ok-wan/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source/qmail-log/dependencies b/examples/source/qmail-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/qmail-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/qmail-log/producer b/examples/source/qmail-log/producer
new file mode 100644
index 0000000..e9c4b1e
--- /dev/null
+++ b/examples/source/qmail-log/producer
@@ -0,0 +1 @@
+qmail
diff --git a/examples/source/qmail-log/run b/examples/source/qmail-log/run
new file mode 100755
index 0000000..60f9a67
--- /dev/null
+++ b/examples/source/qmail-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid qmaillog
+exec -c
+s6-log t s16777216 n64 /var/log/qmail
diff --git a/examples/source/qmail-log/type b/examples/source/qmail-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/qmail-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/qmail/dependencies b/examples/source/qmail/dependencies
new file mode 100644
index 0000000..5259798
--- /dev/null
+++ b/examples/source/qmail/dependencies
@@ -0,0 +1,3 @@
+mount-sync
+wan
+dns-cache
diff --git a/examples/source/qmail/logger b/examples/source/qmail/logger
new file mode 100644
index 0000000..db09b5f
--- /dev/null
+++ b/examples/source/qmail/logger
@@ -0,0 +1 @@
+qmail-log
diff --git a/examples/source/qmail/run b/examples/source/qmail/run
new file mode 100755
index 0000000..0a49456
--- /dev/null
+++ b/examples/source/qmail/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+qmail-start ./Maildir/
diff --git a/examples/source/qmail/type b/examples/source/qmail/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/qmail/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/qmtpd-4-log/dependencies b/examples/source/qmtpd-4-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/qmtpd-4-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/qmtpd-4-log/producer b/examples/source/qmtpd-4-log/producer
new file mode 100644
index 0000000..bf4ce61
--- /dev/null
+++ b/examples/source/qmtpd-4-log/producer
@@ -0,0 +1 @@
+qmtpd-4
diff --git a/examples/source/qmtpd-4-log/run b/examples/source/qmtpd-4-log/run
new file mode 100755
index 0000000..1efb769
--- /dev/null
+++ b/examples/source/qmtpd-4-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid qmaillog
+exec -c
+s6-log t s1000000 n20 /var/log/qmtpd-4
diff --git a/examples/source/qmtpd-4-log/type b/examples/source/qmtpd-4-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/qmtpd-4-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/qmtpd-4/dependencies b/examples/source/qmtpd-4/dependencies
new file mode 100644
index 0000000..6daf05b
--- /dev/null
+++ b/examples/source/qmtpd-4/dependencies
@@ -0,0 +1 @@
+init-lan
diff --git a/examples/source/qmtpd-4/logger b/examples/source/qmtpd-4/logger
new file mode 100644
index 0000000..fbc3153
--- /dev/null
+++ b/examples/source/qmtpd-4/logger
@@ -0,0 +1 @@
+qmtpd-4-log
diff --git a/examples/source/qmtpd-4/notification-fd b/examples/source/qmtpd-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/qmtpd-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/qmtpd-4/run b/examples/source/qmtpd-4/run
new file mode 100755
index 0000000..28f6a9a
--- /dev/null
+++ b/examples/source/qmtpd-4/run
@@ -0,0 +1,7 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envuidgid qmaild
+import -ui ETH0_IP4
+fdmove 1 3
+s6-tcpserver4 -v 1 -U -c 255 -1 -- ${ETH0_IP4} 209
+qmail-qmtpd
diff --git a/examples/source/qmtpd-4/type b/examples/source/qmtpd-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/qmtpd-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/smtpd-4-log/dependencies b/examples/source/smtpd-4-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/smtpd-4-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/smtpd-4-log/producer b/examples/source/smtpd-4-log/producer
new file mode 100644
index 0000000..bff8ca4
--- /dev/null
+++ b/examples/source/smtpd-4-log/producer
@@ -0,0 +1 @@
+smtpd-4
diff --git a/examples/source/smtpd-4-log/run b/examples/source/smtpd-4-log/run
new file mode 100755
index 0000000..43f665b
--- /dev/null
+++ b/examples/source/smtpd-4-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid qmaillog
+exec -c
+s6-log t s1000000 n20 /var/log/smtpd-4
diff --git a/examples/source/smtpd-4-log/type b/examples/source/smtpd-4-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/smtpd-4-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/smtpd-4/data/rules/ip4/0.0.0.0_0/allow b/examples/source/smtpd-4/data/rules/ip4/0.0.0.0_0/allow
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source/smtpd-4/data/rules/ip4/0.0.0.0_0/allow
diff --git a/examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/allow b/examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/allow
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/allow
diff --git a/examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/env/RELAYCLIENT b/examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/env/RELAYCLIENT
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/env/RELAYCLIENT
@@ -0,0 +1 @@
+
diff --git a/examples/source/smtpd-4/dependencies b/examples/source/smtpd-4/dependencies
new file mode 100644
index 0000000..a2eb12c
--- /dev/null
+++ b/examples/source/smtpd-4/dependencies
@@ -0,0 +1,2 @@
+init-lan
+mount-sync
diff --git a/examples/source/smtpd-4/logger b/examples/source/smtpd-4/logger
new file mode 100644
index 0000000..c6fa24d
--- /dev/null
+++ b/examples/source/smtpd-4/logger
@@ -0,0 +1 @@
+smtpd-4-log
diff --git a/examples/source/smtpd-4/notification-fd b/examples/source/smtpd-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/smtpd-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/smtpd-4/run b/examples/source/smtpd-4/run
new file mode 100755
index 0000000..5c7e002
--- /dev/null
+++ b/examples/source/smtpd-4/run
@@ -0,0 +1,8 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envuidgid qmaild
+import -ui ETH0_IP4
+fdmove 1 3
+s6-tcpserver4 -v 2 -U -c 255 -1 -- ${ETH0_IP4} 25
+s6-tcpserver-access -v 2 -w -t 2000 -i data/rules --
+qmail-smtpd
diff --git a/examples/source/smtpd-4/type b/examples/source/smtpd-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/smtpd-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/sshd-4-log/dependencies b/examples/source/sshd-4-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/sshd-4-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/sshd-4-log/producer b/examples/source/sshd-4-log/producer
new file mode 100644
index 0000000..7d1730e
--- /dev/null
+++ b/examples/source/sshd-4-log/producer
@@ -0,0 +1 @@
+sshd-4
diff --git a/examples/source/sshd-4-log/run b/examples/source/sshd-4-log/run
new file mode 100755
index 0000000..25f7773
--- /dev/null
+++ b/examples/source/sshd-4-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid log
+exec -c
+s6-log t s1000000 n20 /var/log/sshd-4
diff --git a/examples/source/sshd-4-log/type b/examples/source/sshd-4-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/sshd-4-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/sshd-4/data/rules/ip4/0.0.0.0_0/deny b/examples/source/sshd-4/data/rules/ip4/0.0.0.0_0/deny
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source/sshd-4/data/rules/ip4/0.0.0.0_0/deny
diff --git a/examples/source/sshd-4/data/rules/ip4/192.168.0.0_22/allow b/examples/source/sshd-4/data/rules/ip4/192.168.0.0_22/allow
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source/sshd-4/data/rules/ip4/192.168.0.0_22/allow
diff --git a/examples/source/sshd-4/dependencies b/examples/source/sshd-4/dependencies
new file mode 100644
index 0000000..6daf05b
--- /dev/null
+++ b/examples/source/sshd-4/dependencies
@@ -0,0 +1 @@
+init-lan
diff --git a/examples/source/sshd-4/logger b/examples/source/sshd-4/logger
new file mode 100644
index 0000000..f103f82
--- /dev/null
+++ b/examples/source/sshd-4/logger
@@ -0,0 +1 @@
+sshd-4-log
diff --git a/examples/source/sshd-4/notification-fd b/examples/source/sshd-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/sshd-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/sshd-4/run b/examples/source/sshd-4/run
new file mode 100755
index 0000000..2667ecf
--- /dev/null
+++ b/examples/source/sshd-4/run
@@ -0,0 +1,7 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+import -ui ETH0_IP4
+fdmove 1 3
+s6-tcpserver4 -v 2 -1 -- ${ETH0_IP4} 22
+s6-tcpserver-access -v 2 -DRl0 -t 5000 -i data/rules --
+dropbear -i -K 60
diff --git a/examples/source/sshd-4/type b/examples/source/sshd-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/sshd-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/syslogd-log/dependencies b/examples/source/syslogd-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/syslogd-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/syslogd-log/producer b/examples/source/syslogd-log/producer
new file mode 100644
index 0000000..93c1661
--- /dev/null
+++ b/examples/source/syslogd-log/producer
@@ -0,0 +1 @@
+syslogd-srv
diff --git a/examples/source/syslogd-log/run b/examples/source/syslogd-log/run
new file mode 100755
index 0000000..2f62604
--- /dev/null
+++ b/examples/source/syslogd-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid syslog
+exec -c
+s6-log t s1000000 n20 /var/log/syslogd
diff --git a/examples/source/syslogd-log/type b/examples/source/syslogd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/syslogd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/syslogd-srv/dependencies b/examples/source/syslogd-srv/dependencies
new file mode 100644
index 0000000..f23f767
--- /dev/null
+++ b/examples/source/syslogd-srv/dependencies
@@ -0,0 +1 @@
+init-devtmpfs
diff --git a/examples/source/syslogd-srv/logger b/examples/source/syslogd-srv/logger
new file mode 100644
index 0000000..75d14f5
--- /dev/null
+++ b/examples/source/syslogd-srv/logger
@@ -0,0 +1 @@
+syslogd-log
diff --git a/examples/source/syslogd-srv/notification-fd b/examples/source/syslogd-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/syslogd-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/syslogd-srv/run b/examples/source/syslogd-srv/run
new file mode 100755
index 0000000..de33c2c
--- /dev/null
+++ b/examples/source/syslogd-srv/run
@@ -0,0 +1,8 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+exec -c
+s6-envuidgid nobody
+fdmove 1 3
+s6-ipcserver -U -1 -- /dev/log
+fdmove -c 1 2
+ucspilogd IPCREMOTEEUID IPCREMOTEEGID
diff --git a/examples/source/syslogd-srv/type b/examples/source/syslogd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/syslogd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/syslogd/contents b/examples/source/syslogd/contents
new file mode 100644
index 0000000..122bd36
--- /dev/null
+++ b/examples/source/syslogd/contents
@@ -0,0 +1,2 @@
+syslogd-srv
+syslogd-log
diff --git a/examples/source/syslogd/type b/examples/source/syslogd/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source/syslogd/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source/taiclockd-4-log/dependencies b/examples/source/taiclockd-4-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/taiclockd-4-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/taiclockd-4-log/producer b/examples/source/taiclockd-4-log/producer
new file mode 100644
index 0000000..7684875
--- /dev/null
+++ b/examples/source/taiclockd-4-log/producer
@@ -0,0 +1 @@
+taiclockd-4
diff --git a/examples/source/taiclockd-4-log/run b/examples/source/taiclockd-4-log/run
new file mode 100755
index 0000000..abb295c
--- /dev/null
+++ b/examples/source/taiclockd-4-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid tailog
+exec -c
+s6-log t s1000000 n20 /var/log/taiclockd-4
diff --git a/examples/source/taiclockd-4-log/type b/examples/source/taiclockd-4-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/taiclockd-4-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/taiclockd-4/dependencies b/examples/source/taiclockd-4/dependencies
new file mode 100644
index 0000000..6daf05b
--- /dev/null
+++ b/examples/source/taiclockd-4/dependencies
@@ -0,0 +1 @@
+init-lan
diff --git a/examples/source/taiclockd-4/logger b/examples/source/taiclockd-4/logger
new file mode 100644
index 0000000..04d85c4
--- /dev/null
+++ b/examples/source/taiclockd-4/logger
@@ -0,0 +1 @@
+taiclockd-4-log
diff --git a/examples/source/taiclockd-4/run b/examples/source/taiclockd-4/run
new file mode 100755
index 0000000..fbb970f
--- /dev/null
+++ b/examples/source/taiclockd-4/run
@@ -0,0 +1,6 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-setuidgid tai
+import -i ETH0_IP4
+s6-taiclockd -i ${ETH0_IP4}
diff --git a/examples/source/taiclockd-4/type b/examples/source/taiclockd-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/taiclockd-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/udhcpc-eth3-log/dependencies b/examples/source/udhcpc-eth3-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/udhcpc-eth3-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/udhcpc-eth3-log/producer b/examples/source/udhcpc-eth3-log/producer
new file mode 100644
index 0000000..6904444
--- /dev/null
+++ b/examples/source/udhcpc-eth3-log/producer
@@ -0,0 +1 @@
+udhcpc-eth3
diff --git a/examples/source/udhcpc-eth3-log/run b/examples/source/udhcpc-eth3-log/run
new file mode 100755
index 0000000..d09823d
--- /dev/null
+++ b/examples/source/udhcpc-eth3-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid log
+exec -c
+s6-log t s1000000 n20 /var/log/udhcpc-eth3
diff --git a/examples/source/udhcpc-eth3-log/type b/examples/source/udhcpc-eth3-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/udhcpc-eth3-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/udhcpc-eth3/dependencies b/examples/source/udhcpc-eth3/dependencies
new file mode 100644
index 0000000..d98fec0
--- /dev/null
+++ b/examples/source/udhcpc-eth3/dependencies
@@ -0,0 +1,2 @@
+init-eth3
+mount-rwfs
diff --git a/examples/source/udhcpc-eth3/logger b/examples/source/udhcpc-eth3/logger
new file mode 100644
index 0000000..018297b
--- /dev/null
+++ b/examples/source/udhcpc-eth3/logger
@@ -0,0 +1 @@
+udhcpc-eth3-log
diff --git a/examples/source/udhcpc-eth3/notification-fd b/examples/source/udhcpc-eth3/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/udhcpc-eth3/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/udhcpc-eth3/run b/examples/source/udhcpc-eth3/run
new file mode 100755
index 0000000..8b4650a
--- /dev/null
+++ b/examples/source/udhcpc-eth3/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir -I env
+import -uD 1.2.3.4 IP
+udhcpc -f -C -i eth3 -x lease:86400 -r $IP -s /etc/udhcpc/udhcpc-script
diff --git a/examples/source/udhcpc-eth3/type b/examples/source/udhcpc-eth3/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/udhcpc-eth3/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/udhcpd-wlan0-log/dependencies b/examples/source/udhcpd-wlan0-log/dependencies
new file mode 100644
index 0000000..e1436e2
--- /dev/null
+++ b/examples/source/udhcpd-wlan0-log/dependencies
@@ -0,0 +1 @@
+mount-sync
diff --git a/examples/source/udhcpd-wlan0-log/producer b/examples/source/udhcpd-wlan0-log/producer
new file mode 100644
index 0000000..d336700
--- /dev/null
+++ b/examples/source/udhcpd-wlan0-log/producer
@@ -0,0 +1 @@
+udhcpd-wlan0
diff --git a/examples/source/udhcpd-wlan0-log/run b/examples/source/udhcpd-wlan0-log/run
new file mode 100755
index 0000000..5142145
--- /dev/null
+++ b/examples/source/udhcpd-wlan0-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid wifilog
+exec -c
+s6-log t s1000000 n20 /var/log/udhcpd-wlan0
diff --git a/examples/source/udhcpd-wlan0-log/type b/examples/source/udhcpd-wlan0-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/udhcpd-wlan0-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/udhcpd-wlan0/dependencies b/examples/source/udhcpd-wlan0/dependencies
new file mode 100644
index 0000000..61f6a0f
--- /dev/null
+++ b/examples/source/udhcpd-wlan0/dependencies
@@ -0,0 +1,2 @@
+init-wlan0
+hostapd
diff --git a/examples/source/udhcpd-wlan0/logger b/examples/source/udhcpd-wlan0/logger
new file mode 100644
index 0000000..f5ac32a
--- /dev/null
+++ b/examples/source/udhcpd-wlan0/logger
@@ -0,0 +1 @@
+udhcpd-wlan0-log
diff --git a/examples/source/udhcpd-wlan0/run b/examples/source/udhcpd-wlan0/run
new file mode 100755
index 0000000..d64605e
--- /dev/null
+++ b/examples/source/udhcpd-wlan0/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+import -ui WLAN0_IP4
+udhcpd -f -I ${WLAN0_IP4} /etc/udhcpd-wlan0.conf
diff --git a/examples/source/udhcpd-wlan0/type b/examples/source/udhcpd-wlan0/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/udhcpd-wlan0/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/wan/contents b/examples/source/wan/contents
new file mode 100644
index 0000000..7f49f13
--- /dev/null
+++ b/examples/source/wan/contents
@@ -0,0 +1,2 @@
+init-eth3
+udhcpc-eth3
diff --git a/examples/source/wan/type b/examples/source/wan/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source/wan/type
@@ -0,0 +1 @@
+bundle