diff options
Diffstat (limited to 'scripts/telnetd.init')
-rwxr-xr-x | scripts/telnetd.init | 59 |
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 |