aboutsummaryrefslogtreecommitdiff
path: root/examples/var_service/inetd
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-11-08 00:55:39 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2009-11-08 00:55:39 +0100
commitf5c2f72917e5f75634665f67a6105e1e82ece875 (patch)
treee1c6a85ae214ad33d4bf38e03f0a3548ad1525f6 /examples/var_service/inetd
parent44f8d013994c20a53836a8768bd488130c7df9bc (diff)
downloadbusybox-f5c2f72917e5f75634665f67a6105e1e82ece875.tar.gz
add more service examples
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'examples/var_service/inetd')
-rw-r--r--examples/var_service/inetd/inetd.conf18
-rwxr-xr-xexamples/var_service/inetd/log/run21
-rwxr-xr-xexamples/var_service/inetd/p_log4
-rwxr-xr-xexamples/var_service/inetd/run17
-rwxr-xr-xexamples/var_service/inetd/w_log4
5 files changed, 64 insertions, 0 deletions
diff --git a/examples/var_service/inetd/inetd.conf b/examples/var_service/inetd/inetd.conf
new file mode 100644
index 000000000..c5f151b86
--- /dev/null
+++ b/examples/var_service/inetd/inetd.conf
@@ -0,0 +1,18 @@
+# [ADDR:]service_name must be in /etc/services, or port number
+# socket_type stream/dgram/raw/rdm/seqpacket
+# protocol tcp/udp
+# wait/nowait[.max] wait is usually for udp, nowait for tcp
+# max: max copies to run
+# user[.group] or user[:group] user and group to run under
+# binary program to run
+# arg0 arg1 arg2... arguments, INCLUDING program name (arg0)
+
+# serv socket pro w/nw user binary args
+
+# IPv6
+555 dgram udp6 wait root echo echo Hello IPv6 udp world
+# ...with ADDR prefix:
+::1:444 stream tcp6 nowait root echo echo Hello IPv6 localhost
+
+# Rarely seen case: tcp *wait* service
+telnet stream tcp wait root telnetd telnetd -w10
diff --git a/examples/var_service/inetd/log/run b/examples/var_service/inetd/log/run
new file mode 100755
index 000000000..560d1b19f
--- /dev/null
+++ b/examples/var_service/inetd/log/run
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+user=logger
+
+logdir="/var/log/service/`(cd ..;basename $PWD)`"
+mkdir -p "$logdir" 2>/dev/null
+chown -R "$user": "$logdir"
+chmod -R go-rwxst,u+rwX "$logdir"
+rm logdir
+ln -s "$logdir" logdir
+
+# make this dir accessible to logger
+chmod a+rX .
+
+exec >/dev/null
+exec 2>&1
+exec \
+env - PATH="$PATH" \
+softlimit \
+setuidgid "$user" \
+svlogd -tt "$logdir"
diff --git a/examples/var_service/inetd/p_log b/examples/var_service/inetd/p_log
new file mode 100755
index 000000000..a2521be05
--- /dev/null
+++ b/examples/var_service/inetd/p_log
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd log/logdir || exit 1
+cat @* current | $PAGER
diff --git a/examples/var_service/inetd/run b/examples/var_service/inetd/run
new file mode 100755
index 000000000..910c1b331
--- /dev/null
+++ b/examples/var_service/inetd/run
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+#exec >/dev/null
+exec 2>&1
+exec </dev/null
+
+echo "* Starting inetd [$$]"
+exec \
+env - PATH="$PATH" \
+softlimit \
+inetd -f -e "$PWD/inetd.conf"
+
+# inetd [-f] [-q len] [conf]
+# -f Run in foreground
+# -e Log to stderr (default is syslog)
+# -q N Set the size of the socket listen queue to N
+# (default: 128)
diff --git a/examples/var_service/inetd/w_log b/examples/var_service/inetd/w_log
new file mode 100755
index 000000000..34b19b373
--- /dev/null
+++ b/examples/var_service/inetd/w_log
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd log/logdir || exit 1
+watch -n2 'w=`ttysize w`; h=`ttysize h`; tail -$((h-3)) current 2>&1 | cut -b0-$((w-2))'