summaryrefslogtreecommitdiffhomepage
path: root/examples/var_service/ifplugd_if
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-11-06 04:04:19 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2009-11-06 04:04:19 +0100
commit6cf7f01256c39677a0a5561ebca60e8def9d6d7e (patch)
tree9751616a6653806d6703da369616d74e38f8b785 /examples/var_service/ifplugd_if
parent85bb843f47342b19c4f0814331c1f4c78b0011ad (diff)
adding example runit-style service directory
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'examples/var_service/ifplugd_if')
-rwxr-xr-xexamples/var_service/ifplugd_if/ifplugd_handler15
-rwxr-xr-xexamples/var_service/ifplugd_if/log/run21
-rwxr-xr-xexamples/var_service/ifplugd_if/p_log4
-rwxr-xr-xexamples/var_service/ifplugd_if/run32
-rwxr-xr-xexamples/var_service/ifplugd_if/w_log4
5 files changed, 76 insertions, 0 deletions
diff --git a/examples/var_service/ifplugd_if/ifplugd_handler b/examples/var_service/ifplugd_if/ifplugd_handler
new file mode 100755
index 000000000..4962fcf98
--- /dev/null
+++ b/examples/var_service/ifplugd_if/ifplugd_handler
@@ -0,0 +1,15 @@
+#!/bin/sh
+# parameters:
+# $1: interface
+# $2: state
+
+if test -d "/var/service/dhcp_$1"; then
+ if test x"$2" = x"down"; then
+ echo "Downing /var/service/dhcp_$1"
+ sv d "/var/service/dhcp_$1"
+ fi
+ if test x"$2" = x"up"; then
+ echo "Upping /var/service/dhcp_$1"
+ sv u "/var/service/dhcp_$1"
+ fi
+fi
diff --git a/examples/var_service/ifplugd_if/log/run b/examples/var_service/ifplugd_if/log/run
new file mode 100755
index 000000000..560d1b19f
--- /dev/null
+++ b/examples/var_service/ifplugd_if/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/ifplugd_if/p_log b/examples/var_service/ifplugd_if/p_log
new file mode 100755
index 000000000..a2521be05
--- /dev/null
+++ b/examples/var_service/ifplugd_if/p_log
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd log/logdir || exit 1
+cat @* current | $PAGER
diff --git a/examples/var_service/ifplugd_if/run b/examples/var_service/ifplugd_if/run
new file mode 100755
index 000000000..44ddbc48d
--- /dev/null
+++ b/examples/var_service/ifplugd_if/run
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+exec 2>&1
+exec </dev/null
+
+pwd="$PWD"
+
+if="${PWD##*/ifplugd_}"
+
+echo "* Starting ifplugd [$$]"
+exec \
+env - PATH="$PATH" \
+softlimit \
+setuidgid root \
+ifplugd -apq -n -s -i "$if" -r "$pwd/ifplugd_handler"
+
+#-n Do not daemonize
+#-s Do not log to syslog
+#-i IFACE Interface
+#-f/-F Treat link detection error as link down/link up (otherwise exit on error)
+#-a Do not up interface automatically
+#-M Monitor creation/destruction of interface (otherwise it must exist)
+#-r PROG Script to run
+#-x ARG Extra argument for script
+#-I Dont exit on nonzero exit code from script
+#-p Dont run script on daemon startup
+#-q Dont run script on daemon quit
+#-l Run script on startup even if no cable is detected
+#-t SECS Poll time in seconds
+#-u SECS Delay before running script after link up
+#-d SECS Delay after link down
+#-m MODE API mode (mii, priv, ethtool, wlan, auto)
diff --git a/examples/var_service/ifplugd_if/w_log b/examples/var_service/ifplugd_if/w_log
new file mode 100755
index 000000000..34b19b373
--- /dev/null
+++ b/examples/var_service/ifplugd_if/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))'