diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2015-10-06 16:23:19 +0000 |
---|---|---|
committer | Laurent Bercot <ska-skaware@skarnet.org> | 2015-10-06 16:23:19 +0000 |
commit | 4da6b9c320e6b49d38af5cb6b5861480141f24cd (patch) | |
tree | c920b72f5f291a29a71ca009ce113e4846b8a217 /examples/ROOT/img | |
parent | 478dd24279f833042a94590df0726d163b576af5 (diff) | |
download | s6-4da6b9c320e6b49d38af5cb6b5861480141f24cd.tar.xz |
- add -s support to s6-svscan
- change examples to support -s
- change examples to invoke s6-rc, remove servicedirs
Diffstat (limited to 'examples/ROOT/img')
41 files changed, 34 insertions, 179 deletions
diff --git a/examples/ROOT/img/README b/examples/ROOT/img/README index 8181be3..185a3e6 100644 --- a/examples/ROOT/img/README +++ b/examples/ROOT/img/README @@ -1,9 +1,4 @@ -This directory is read-only. It contains the service -repository (actually one list of services that do not -need the network and one list of services that can only -be started after the network is up), and an image of the +This directory is read-only. It contains an image of the tmpfs that it copied as-is at boot-time (during stage 1 -init). -This directory is only used at boot-time, it is never -written to (the service directories are copied as-is -to /service during stage 2 init). +init). It is only used at boot-time, it is never +written to. diff --git a/examples/ROOT/img/services-local/README b/examples/ROOT/img/services-local/README deleted file mode 100644 index 9e4c027..0000000 --- a/examples/ROOT/img/services-local/README +++ /dev/null @@ -1,5 +0,0 @@ -This is the service repository for services that should be started -early, typically before the network goes up. -"klogd" and "syslogd" services should be present as soon as possible, -because other services might need them. However, since they need -a writable disk filesystem, they can't be run as early as a getty. diff --git a/examples/ROOT/img/services-local/klogd-linux/README b/examples/ROOT/img/services-local/klogd-linux/README deleted file mode 100644 index ec95a00..0000000 --- a/examples/ROOT/img/services-local/klogd-linux/README +++ /dev/null @@ -1,3 +0,0 @@ -This klogd emulation is only valid under Linux. -The service only processes logs from /proc/kmsg and -sends them to stdout, i.e. its own logger. diff --git a/examples/ROOT/img/services-local/klogd-linux/log/README b/examples/ROOT/img/services-local/klogd-linux/log/README deleted file mode 100644 index 6b51a4a..0000000 --- a/examples/ROOT/img/services-local/klogd-linux/log/README +++ /dev/null @@ -1 +0,0 @@ -Processed kernel logs will be logged to the /var/log/klogd/ logdir. diff --git a/examples/ROOT/img/services-local/klogd-linux/log/run b/examples/ROOT/img/services-local/klogd-linux/log/run deleted file mode 100755 index d9659e7..0000000 --- a/examples/ROOT/img/services-local/klogd-linux/log/run +++ /dev/null @@ -1,4 +0,0 @@ -#!/command/execlineb -P -s6-setuidgid klog -exec -c -s6-log t s1000000 n20 /var/log/klogd diff --git a/examples/ROOT/img/services-local/klogd-linux/run b/examples/ROOT/img/services-local/klogd-linux/run deleted file mode 100755 index 453b55b..0000000 --- a/examples/ROOT/img/services-local/klogd-linux/run +++ /dev/null @@ -1,5 +0,0 @@ -#!/command/execlineb -P -fdmove -c 2 1 -redirfd -r 0 /proc/kmsg -exec -c -ucspilogd diff --git a/examples/ROOT/img/services-local/syslogd-linux/README b/examples/ROOT/img/services-local/syslogd-linux/README deleted file mode 100644 index a3c3ba4..0000000 --- a/examples/ROOT/img/services-local/syslogd-linux/README +++ /dev/null @@ -1,7 +0,0 @@ -This syslogd emulation works on any Unix where syslog() is -implemented via a connection on the /dev/log Unix-domain socket. -It needs a Unix superserver (see s6-networking, ucspi-unix or -ucspi-ipc) and ucspilogd. -A ucspilogd process is spawned for every syslog() client. It -processes logs and sends them to stderr, i.e. the service's -logger. diff --git a/examples/ROOT/img/services-local/syslogd-linux/log/README b/examples/ROOT/img/services-local/syslogd-linux/log/README deleted file mode 100644 index 9d4968e..0000000 --- a/examples/ROOT/img/services-local/syslogd-linux/log/README +++ /dev/null @@ -1,9 +0,0 @@ - This logger service logs everything the syslogd service receives -into subdirectories of /var/log/syslogd/ logdir. - - The script provided in env/LOGSCRIPT emulates the default -syslogd behaviour on a majority of Linux distributions. - - Note that spaces cannot be used as is in the LOGSCRIPT file, -because they are delimiters for the splitting of $LOGSCRIPT -in the run script. So \s is used instead. diff --git a/examples/ROOT/img/services-local/syslogd-linux/log/env/LOGSCRIPT b/examples/ROOT/img/services-local/syslogd-linux/log/env/LOGSCRIPT deleted file mode 100644 index e7a1eb7..0000000 --- a/examples/ROOT/img/services-local/syslogd-linux/log/env/LOGSCRIPT +++ /dev/null @@ -1,6 +0,0 @@ -- +^[0-9]+:\s[0-9]+:\serror\. t /var/log/syslogd/error -- +^[0-9]+:\s[0-9]+:\sauthpriv\. t /var/log/syslogd/auth -- +^[0-9]+:\s[0-9]+:\suser\. t /var/log/syslogd/user -- +^[0-9]+:\s[0-9]+:\smessages\. t /var/log/syslogd/messages -- +^[0-9]+:\s[0-9]+:\sdaemon\. t /var/log/syslogd/daemon -f t /var/log/syslogd/misc diff --git a/examples/ROOT/img/services-local/syslogd-linux/log/run b/examples/ROOT/img/services-local/syslogd-linux/log/run deleted file mode 100755 index 56de271..0000000 --- a/examples/ROOT/img/services-local/syslogd-linux/log/run +++ /dev/null @@ -1,8 +0,0 @@ -#!/command/execlineb -P -s6-setuidgid syslog -s6-envdir -f env -import -Cs LOGSCRIPT -exec -c -s6-log $LOGSCRIPT - -# Change env/LOGSCRIPT to alter s6-log's behaviour diff --git a/examples/ROOT/img/services-local/syslogd-linux/notification-fd b/examples/ROOT/img/services-local/syslogd-linux/notification-fd deleted file mode 100644 index 00750ed..0000000 --- a/examples/ROOT/img/services-local/syslogd-linux/notification-fd +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/examples/ROOT/img/services-local/syslogd-linux/run b/examples/ROOT/img/services-local/syslogd-linux/run deleted file mode 100755 index de33c2c..0000000 --- a/examples/ROOT/img/services-local/syslogd-linux/run +++ /dev/null @@ -1,8 +0,0 @@ -#!/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/ROOT/img/services-network/README b/examples/ROOT/img/services-network/README deleted file mode 100644 index 9f4ab38..0000000 --- a/examples/ROOT/img/services-network/README +++ /dev/null @@ -1,5 +0,0 @@ -This is the service repository for all the late services, -i.e. those that do not need to be started before the network -is up. -Only a few examples are provided here; you can make your own -service directories depending on your needs. diff --git a/examples/ROOT/img/services-network/dns-cache/README b/examples/ROOT/img/services-network/dns-cache/README deleted file mode 100644 index 8fc5c28..0000000 --- a/examples/ROOT/img/services-network/dns-cache/README +++ /dev/null @@ -1,2 +0,0 @@ -Service directory for a DNS caching resolver service, -implemented via djbdns's dnscache running on 127.0.0.1 diff --git a/examples/ROOT/img/services-network/dns-cache/env/CACHESIZE b/examples/ROOT/img/services-network/dns-cache/env/CACHESIZE deleted file mode 100644 index 6820bf1..0000000 --- a/examples/ROOT/img/services-network/dns-cache/env/CACHESIZE +++ /dev/null @@ -1 +0,0 @@ -1048576 diff --git a/examples/ROOT/img/services-network/dns-cache/env/IP b/examples/ROOT/img/services-network/dns-cache/env/IP deleted file mode 100644 index 7b9ad53..0000000 --- a/examples/ROOT/img/services-network/dns-cache/env/IP +++ /dev/null @@ -1 +0,0 @@ -127.0.0.1 diff --git a/examples/ROOT/img/services-network/dns-cache/env/IPSEND b/examples/ROOT/img/services-network/dns-cache/env/IPSEND deleted file mode 100644 index d690dc0..0000000 --- a/examples/ROOT/img/services-network/dns-cache/env/IPSEND +++ /dev/null @@ -1 +0,0 @@ -0.0.0.0 diff --git a/examples/ROOT/img/services-network/dns-cache/env/ROOT b/examples/ROOT/img/services-network/dns-cache/env/ROOT deleted file mode 100644 index 0a89945..0000000 --- a/examples/ROOT/img/services-network/dns-cache/env/ROOT +++ /dev/null @@ -1 +0,0 @@ -/service/dns-cache/root diff --git a/examples/ROOT/img/services-network/dns-cache/log/README b/examples/ROOT/img/services-network/dns-cache/log/README deleted file mode 100644 index 55676f1..0000000 --- a/examples/ROOT/img/services-network/dns-cache/log/README +++ /dev/null @@ -1,3 +0,0 @@ -Logger service for the dns-cache service. -djbdns's dnscache produces a lot of output, so -you may want to add log filters. diff --git a/examples/ROOT/img/services-network/dns-cache/log/run b/examples/ROOT/img/services-network/dns-cache/log/run deleted file mode 100755 index 4177eaa..0000000 --- a/examples/ROOT/img/services-network/dns-cache/log/run +++ /dev/null @@ -1,4 +0,0 @@ -#!/command/execlineb -P -s6-setuidgid dnslog -exec -c -s6-log t s1000000 n20 /var/log/dns-cache diff --git a/examples/ROOT/img/services-network/dns-cache/root/ip/127.0.0.1 b/examples/ROOT/img/services-network/dns-cache/root/ip/127.0.0.1 deleted file mode 100644 index e69de29..0000000 --- a/examples/ROOT/img/services-network/dns-cache/root/ip/127.0.0.1 +++ /dev/null diff --git a/examples/ROOT/img/services-network/dns-cache/root/servers/@ b/examples/ROOT/img/services-network/dns-cache/root/servers/@ deleted file mode 100644 index ca40b38..0000000 --- a/examples/ROOT/img/services-network/dns-cache/root/servers/@ +++ /dev/null @@ -1,13 +0,0 @@ -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/ROOT/img/services-network/dns-cache/run b/examples/ROOT/img/services-network/dns-cache/run deleted file mode 100755 index af92aae..0000000 --- a/examples/ROOT/img/services-network/dns-cache/run +++ /dev/null @@ -1,12 +0,0 @@ -#!/command/execlineb -P -fdmove -c 2 1 -s6-envuidgid dnscache -s6-envdir env -s6-softlimit -m 2000000 -pipeline -d -{ - redirfd -r 0 /dev/urandom - s6-head -c 128 -} -unexport ! -dnscache diff --git a/examples/ROOT/img/services-network/fifodir-cleanup/README b/examples/ROOT/img/services-network/fifodir-cleanup/README deleted file mode 100644 index 2c41ea2..0000000 --- a/examples/ROOT/img/services-network/fifodir-cleanup/README +++ /dev/null @@ -1,2 +0,0 @@ -This service cleans up the fifodirs for all the services in -/service once a day. diff --git a/examples/ROOT/img/services-network/fifodir-cleanup/run b/examples/ROOT/img/services-network/fifodir-cleanup/run deleted file mode 100755 index 9928d84..0000000 --- a/examples/ROOT/img/services-network/fifodir-cleanup/run +++ /dev/null @@ -1,14 +0,0 @@ -#!/command/execlineb -P -fdmove -c 2 1 -if -{ - forbacktickx -p -0 i { s6-ls -0 /service } - import i unexport i - foreground - { - if { s6-test -d /service/${i}/log } - s6-cleanfifodir /service/${i}/log/event - } - s6-cleanfifodir /service/${i}/event -} -s6-sleep 86400 diff --git a/examples/ROOT/img/services-network/ntpclient/README b/examples/ROOT/img/services-network/ntpclient/README deleted file mode 100644 index c4fc357..0000000 --- a/examples/ROOT/img/services-network/ntpclient/README +++ /dev/null @@ -1,9 +0,0 @@ -This service updates the system clock via NTP every 4 hours. -If you're not in France, change 0.fr.pool.ntp.org to a NTP -server pool more fitting your location. -See www.ntp.pool.org for details. - -Do yourself a favor and don't rely on NTP internally. -Just synchronize your main time server via this NTP client -to the outside world, and use a saner and simpler protocol -like TAICLOCK in your internal, fast-speed network. diff --git a/examples/ROOT/img/services-network/ntpclient/log/README b/examples/ROOT/img/services-network/ntpclient/log/README deleted file mode 100644 index e4c7a37..0000000 --- a/examples/ROOT/img/services-network/ntpclient/log/README +++ /dev/null @@ -1,3 +0,0 @@ -Yes, the output of the ntpclient service is logged to -the /var/log/ntpclient logdir. -Make sure it has the correct Unix credentials and permissions! diff --git a/examples/ROOT/img/services-network/ntpclient/log/run b/examples/ROOT/img/services-network/ntpclient/log/run deleted file mode 100755 index 80d7b5b..0000000 --- a/examples/ROOT/img/services-network/ntpclient/log/run +++ /dev/null @@ -1,4 +0,0 @@ -#!/command/execlineb -P -s6-setuidgid ntplog -exec -c -s6-log t /var/log/ntpclient diff --git a/examples/ROOT/img/services-network/ntpclient/run b/examples/ROOT/img/services-network/ntpclient/run deleted file mode 100755 index 7ade064..0000000 --- a/examples/ROOT/img/services-network/ntpclient/run +++ /dev/null @@ -1,19 +0,0 @@ -#!/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 - } - s6-sntpclock -v $NTPSERVERIP - } - s6-clockadd -} -s6-setuidgid nobody -s6-sleep 14400 diff --git a/examples/ROOT/img/services-network/sshd/README b/examples/ROOT/img/services-network/sshd/README deleted file mode 100644 index 2d55a5e..0000000 --- a/examples/ROOT/img/services-network/sshd/README +++ /dev/null @@ -1,5 +0,0 @@ -Service directory for a sshd server over IPv4, -implemented via s6-networking and dropbear. -The rules subdirectory implements access control; in -this example, only 127.0.0.1 is allowed to connect -(which isn't exactly useful for a SSH server). diff --git a/examples/ROOT/img/services-network/sshd/log/README b/examples/ROOT/img/services-network/sshd/log/README deleted file mode 100644 index 392ede8..0000000 --- a/examples/ROOT/img/services-network/sshd/log/README +++ /dev/null @@ -1 +0,0 @@ -Logging service for sshd. diff --git a/examples/ROOT/img/services-network/sshd/log/run b/examples/ROOT/img/services-network/sshd/log/run deleted file mode 100755 index d07f180..0000000 --- a/examples/ROOT/img/services-network/sshd/log/run +++ /dev/null @@ -1,4 +0,0 @@ -#!/command/execlineb -P -s6-setuidgid log -exec -c -s6-log t s1000000 n20 /var/log/sshd diff --git a/examples/ROOT/img/services-network/sshd/notification-fd b/examples/ROOT/img/services-network/sshd/notification-fd deleted file mode 100644 index 00750ed..0000000 --- a/examples/ROOT/img/services-network/sshd/notification-fd +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/examples/ROOT/img/services-network/sshd/rules/ip4/0.0.0.0_0/deny b/examples/ROOT/img/services-network/sshd/rules/ip4/0.0.0.0_0/deny deleted file mode 100644 index e69de29..0000000 --- a/examples/ROOT/img/services-network/sshd/rules/ip4/0.0.0.0_0/deny +++ /dev/null diff --git a/examples/ROOT/img/services-network/sshd/rules/ip4/127.0.0.1_32/allow b/examples/ROOT/img/services-network/sshd/rules/ip4/127.0.0.1_32/allow deleted file mode 100644 index e69de29..0000000 --- a/examples/ROOT/img/services-network/sshd/rules/ip4/127.0.0.1_32/allow +++ /dev/null diff --git a/examples/ROOT/img/services-network/sshd/run b/examples/ROOT/img/services-network/sshd/run deleted file mode 100755 index 3a35a11..0000000 --- a/examples/ROOT/img/services-network/sshd/run +++ /dev/null @@ -1,6 +0,0 @@ -#!/command/execlineb -P -fdmove -c 2 1 -fdmove 1 3 -s6-tcpserver4 -1 -- 0.0.0.0 22 -s6-tcpserver-access -vvDRl0 -t 5000 -i rules -dropbear -iEg diff --git a/examples/ROOT/img/tmpfs/service/.s6-svscan/README b/examples/ROOT/img/tmpfs/service/.s6-svscan/README index 6500cc6..f61dc8d 100644 --- a/examples/ROOT/img/tmpfs/service/.s6-svscan/README +++ b/examples/ROOT/img/tmpfs/service/.s6-svscan/README @@ -1,2 +1,9 @@ -This is the image of the control directory of the s6-svscan process. -Notice how the symlinks point to ever-existing scripts. +This is the image of the control directory of the s6-svscan process +running as pid 1. +"crash" is run if s6-svscan fails. +"finish" is run when s6-svscan exits its loop. + + The "SIG*" files are run as children of s6-svscan when it receives +the corresponding signal. SIGINT, SIGUSR1 and SIGUSR2 will all +trigger "s6-rc -da change" (the service manager will shut down all +the services), then s6-svscan will be told to exit its loop. diff --git a/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGINT b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGINT new file mode 100755 index 0000000..f0ff213 --- /dev/null +++ b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGINT @@ -0,0 +1,3 @@ +#!/command/execlineb -P +foreground { s6-rc -da change } +s6-svscanctl -6 . diff --git a/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR1 b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR1 new file mode 100755 index 0000000..cb4a4ef --- /dev/null +++ b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR1 @@ -0,0 +1,3 @@ +#!/command/execlineb -P +foreground { s6-rc -da change } +s6-svscanctl -0 . diff --git a/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR2 b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR2 new file mode 100755 index 0000000..e5932be --- /dev/null +++ b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR2 @@ -0,0 +1,3 @@ +#!/command/execlineb -P +foreground { s6-rc -da change } +s6-svscanctl -7 . diff --git a/examples/ROOT/img/tmpfs/service/.s6-svscan/crash b/examples/ROOT/img/tmpfs/service/.s6-svscan/crash index 262c196..501e316 120000..100755 --- a/examples/ROOT/img/tmpfs/service/.s6-svscan/crash +++ b/examples/ROOT/img/tmpfs/service/.s6-svscan/crash @@ -1 +1,13 @@ -/etc/s6-init/crash
\ No newline at end of file +#!/command/execlineb -P + +# This file is run when an unrecoverable error happens +# to s6-svscan. Edit it to suit your needs. + +cd / +redirfd -r 0 /dev/console +redirfd -w 1 /dev/console +fdmove -c 2 1 + +foreground { s6-echo "s6-svscan panicked! Dropping to a root shell.\n" } + +/bin/sh -i |