wok-next annotate busybox/stuff/daemon @ rev 21135

Up libgcrypt (1.8.4), libpgp-error (1.34), libxml2 (2.9.9), libxslt (1.1.33).
author Aleksej Bobylev <al.bobylev@gmail.com>
date Sun Jan 20 16:02:24 2019 +0200 (2019-01-20)
parents 7f188676b59c
children
rev   line source
pascal@5308 1 #!/bin/sh
al@19161 2 # Start, stop and restart a busybox daemon on SliTaz, at boot time or
pascal@5308 3 # with the command line.
pascal@5308 4 #
pascal@5308 5 # To start daemon at boot time, just put the right name in the $RUN_DAEMONS
pascal@5308 6 # variable of /etc/rcS.conf and configure options with /etc/daemons.conf.
pascal@5308 7 #
pascal@5308 8 . /etc/init.d/rc.functions
pascal@5308 9
pascal@5308 10 NAME=$(basename $0)
al@19159 11 DESC="$(_ '%s daemon' $NAME)"
pascal@5308 12 DAEMON=$(which $NAME)
pascal@18590 13 for p in ${PATH//:/ }; do
pascal@18590 14 [ -L $p/$NAME ] || continue
pascal@18590 15 case "$(readlink $p/$NAME)" in
al@19159 16 *busybox)
al@19159 17 DAEMON=$p/$NAME
pascal@18590 18 break
pascal@18590 19 esac
pascal@18590 20 done
pascal@5308 21 eval $(grep -i ^${NAME}_OPTIONS /etc/daemons.conf | sed 's/.*_OPT/OPT/')
pascal@5308 22 PIDFILE=/var/run/$NAME.pid
pascal@5308 23
pascal@5308 24 active_inetd()
pascal@5308 25 {
pascal@5308 26 if grep $DAEMON /etc/inetd.conf | grep -q ^\#; then
pascal@5308 27 sed -i "s,^#\(.*$DAEMON.*\)$,\1," /etc/inetd.conf
al@19159 28 /etc/init.d/inetd stop >/dev/null
pascal@5308 29 exec /etc/init.d/inetd start
pascal@5308 30 else
al@19159 31 _ '%s is already active.' $NAME
pascal@5308 32 exit 1
pascal@5308 33 fi
pascal@5308 34 }
pascal@5308 35
pascal@5308 36 inactive_inetd()
pascal@5308 37 {
pascal@5308 38 if grep $DAEMON /etc/inetd.conf | grep -q ^\#; then
al@19159 39 _ '%s is not active.' $NAME
pascal@5308 40 exit 1
pascal@5308 41 else
pascal@5308 42 sed -i "s,^.*$DAEMON.*$,#&," /etc/inetd.conf
al@19159 43 /etc/init.d/inetd stop >/dev/null
pascal@5308 44 exec /etc/init.d/inetd start
pascal@5308 45 fi
pascal@5308 46 }
pascal@5308 47
pascal@5308 48 case "$1" in
pascal@5308 49 start)
pascal@5308 50 grep -qs $DAEMON /etc/inetd.conf && active_inetd
pascal@5308 51 if active_pidfile $PIDFILE $NAME ; then
al@19159 52 _ '%s is already running.' $NAME
pascal@5308 53 exit 1
pascal@5308 54 fi
al@19159 55 action 'Starting %s: %s...' "$DESC" $NAME
al@19159 56 $DAEMON $OPTIONS
al@19159 57 [ -f $PIDFILE ] || pidof $NAME | awk '{print $1}' > $PIDFILE
pascal@5308 58 active_pidfile $PIDFILE $NAME
pascal@5308 59 status
pascal@5308 60 ;;
pascal@5308 61 stop)
pascal@5308 62 grep -qs $DAEMON /etc/inetd.conf && inactive_inetd
pascal@5308 63 if ! active_pidfile $PIDFILE $NAME ; then
al@19159 64 _ '%s is not running.' $NAME
pascal@5308 65 exit 1
pascal@5308 66 fi
al@19159 67 action 'Stopping %s: %s...' "$DESC" $NAME
al@19159 68 kill $(cat $PIDFILE)
pascal@5308 69 status
pascal@5308 70 ;;
pascal@5308 71 restart)
pascal@5308 72 grep -qs $DAEMON /etc/inetd.conf && exit 0
pascal@5308 73 if ! active_pidfile $PIDFILE $NAME ; then
al@19159 74 _ '%s is not running.' $NAME
pascal@5308 75 exit 1
pascal@5308 76 fi
al@19159 77 action 'Restarting %s: %s...' "$DESC" $NAME
al@19159 78 kill $(cat $PIDFILE)
pascal@5308 79 sleep 2
pascal@5308 80 $DAEMON $OPTIONS
al@19159 81 [ -f $PIDFILE ] || pidof $NAME | awk '{print $1}' > $PIDFILE
pascal@5308 82 active_pidfile $PIDFILE $NAME
pascal@5308 83 status
pascal@5308 84 ;;
al@19159 85 *)
al@19159 86 emsg "<n><b>$(_ 'Usage:')</b> /etc/init.d/$(basename $0) [start|stop|restart]"
al@19159 87 newline
pascal@5308 88 exit 1
pascal@5308 89 ;;
pascal@5308 90 esac
pascal@5308 91
pascal@5308 92 exit 0