#! /bin/bash ### BEGIN INIT INFO # Provides: telnetd # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: # Default-Stop: # Short-Description: Busybox telnet daemon ### END INIT INFO declare progname=${0##*/} declare action=$1; shift port=$1; shift addr=$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_telnetd () { if [ -n "$addr" ] then $bb telnetd -p $port -b $addr else $bb telnetd -p $port fi } start () { local -i pid=$( running_pid ) [ $pid -ne 0 ] && return start_telnetd } stop () { local -i pid=$( running_pid ) if [ $pid -ne 0 ] then kill $pid else return 0 fi } restart() { local -i pid=$( running_pid ) if [ $pid -ne 0 ] then kill $pid sleep 1 fi start_telnetd } status () { local -i pid=$( running_pid ) if [ $pid -ne 0 ] then echo running return else echo not running false fi } case "$action" in start) start;; stop) stop;; restart) restart;; status) status;; *) echo "Usage: $progname {start|stop|restart|status}" exit 1 esac