wok-6.x diff busybox/stuff/daemon @ rev 5308
busybox: update init scripts
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Tue Apr 20 18:23:21 2010 +0200 (2010-04-20) |
parents | |
children | d2c1950b6f95 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/busybox/stuff/daemon Tue Apr 20 18:23:21 2010 +0200 1.3 @@ -0,0 +1,85 @@ 1.4 +#!/bin/sh 1.5 +# Start, stop and restart a busybox deamon on SliTaz, at boot time or 1.6 +# with the command line. 1.7 +# 1.8 +# To start daemon at boot time, just put the right name in the $RUN_DAEMONS 1.9 +# variable of /etc/rcS.conf and configure options with /etc/daemons.conf. 1.10 +# 1.11 +. /etc/init.d/rc.functions 1.12 + 1.13 +NAME=$(basename $0) 1.14 +DESC="$NAME deamon" 1.15 +DAEMON=$(which $NAME) 1.16 +eval $(grep -i ^${NAME}_OPTIONS /etc/daemons.conf | sed 's/.*_OPT/OPT/') 1.17 +PIDFILE=/var/run/$NAME.pid 1.18 + 1.19 +active_inetd() 1.20 +{ 1.21 +if grep $DAEMON /etc/inetd.conf | grep -q ^\#; then 1.22 + sed -i "s,^#\(.*$DAEMON.*\)$,\1," /etc/inetd.conf 1.23 + /etc/init.d/inetd stop > /dev/null 1.24 + exec /etc/init.d/inetd start 1.25 +else 1.26 + echo "$NAME is already active." 1.27 + exit 1 1.28 +fi 1.29 +} 1.30 + 1.31 +inactive_inetd() 1.32 +{ 1.33 +if grep $DAEMON /etc/inetd.conf | grep -q ^\#; then 1.34 + echo "$NAME is not active." 1.35 + exit 1 1.36 +else 1.37 + sed -i "s,^.*$DAEMON.*$,#&," /etc/inetd.conf 1.38 + /etc/init.d/inetd stop > /dev/null 1.39 + exec /etc/init.d/inetd start 1.40 +fi 1.41 +} 1.42 + 1.43 +case "$1" in 1.44 + start) 1.45 + grep -qs $DAEMON /etc/inetd.conf && active_inetd 1.46 + if active_pidfile $PIDFILE $NAME ; then 1.47 + echo "$NAME is already running." 1.48 + exit 1 1.49 + fi 1.50 + echo -n "Starting $DESC: $NAME... " 1.51 + $DAEMON $OPTIONS 1.52 + [ -f $PIDFILE ] || pidof $NAME | awk '{ print $1 }' > $PIDFILE 1.53 + active_pidfile $PIDFILE $NAME 1.54 + status 1.55 + ;; 1.56 + stop) 1.57 + grep -qs $DAEMON /etc/inetd.conf && inactive_inetd 1.58 + if ! active_pidfile $PIDFILE $NAME ; then 1.59 + echo "$NAME is not running." 1.60 + exit 1 1.61 + fi 1.62 + echo -n "Stopping $DESC: $NAME... " 1.63 + kill `cat $PIDFILE` 1.64 + status 1.65 + ;; 1.66 + restart) 1.67 + grep -qs $DAEMON /etc/inetd.conf && exit 0 1.68 + if ! active_pidfile $PIDFILE $NAME ; then 1.69 + echo "$NAME is not running." 1.70 + exit 1 1.71 + fi 1.72 + echo -n "Restarting $DESC: $NAME... " 1.73 + kill `cat $PIDFILE` 1.74 + sleep 2 1.75 + $DAEMON $OPTIONS 1.76 + [ -f $PIDFILE ] || pidof $NAME | awk '{ print $1 }' > $PIDFILE 1.77 + active_pidfile $PIDFILE $NAME 1.78 + status 1.79 + ;; 1.80 +*) 1.81 + echo "" 1.82 + echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]" 1.83 + echo "" 1.84 + exit 1 1.85 + ;; 1.86 +esac 1.87 + 1.88 +exit 0