summaryrefslogtreecommitdiff
path: root/scripts/telnetd.init
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/telnetd.init')
-rwxr-xr-xscripts/telnetd.init59
1 files changed, 59 insertions, 0 deletions
diff --git a/scripts/telnetd.init b/scripts/telnetd.init
new file mode 100755
index 00000000..b8368f03
--- /dev/null
+++ b/scripts/telnetd.init
@@ -0,0 +1,59 @@
+#! /bin/bash
+
+declare progname=${0##*/}
+declare action=$1; shift
+
+port=$1; shift
+
+: ${port:=23}
+: ${bb:=/bin/busybox}
+
+test -x $bb || exit 0
+
+running_pid ()
+{
+ pidof $bb | while read pid ; do
+ f=$(tr '\000' '\t' < /proc/$pid/cmdline 2>/dev/null | cut -f2)
+ if [ "$f" == telnetd ] ; then
+ echo $pid
+ return
+ fi
+ done
+ false
+}
+
+start ()
+{
+ local -i pid=$( running_pid )
+
+ [ $pid -ne 0 ] && return
+ $bb telnetd -p $port
+}
+
+stop ()
+{
+ local -i pid=$( running_pid )
+ [ $pid -ne 0 ] && kill $pid
+}
+
+status ()
+{
+ pidof $bb | while read pid ; do
+ f=$(tr '\000' '\t' < /proc/$pid/cmdline | cut -f2)
+ if [ $f == telnetd ] ; then
+ echo running
+ return
+ fi
+ done
+ echo not running
+ false
+}
+
+case "$action" in
+ start) start;;
+ stop) stop;;
+ restart) stop; sleep 1; start;;
+ status) status;;
+ *) echo "Usage: $progname {start|stop|restart|status}"
+ exit 1
+esac