commited as rc.darkice w/ minor modification. Thanks Niels. > Dear Rafael, > dear darkice users, > > > many thanks for your good work with 0.20. > > regarding to the discussion on this list and the fact that there are still > distributions without a init script for darkice (which should be run > generically under the different linux distributions) i post my suggestion > for > such one here. > > However, may be this will help someone too. > > Additionally the script allows simple but helpful monitoring or > 'auto-repair' in a case the darkice process get crashed. > > - 'start' starts darkice as a deamon > - 'stop' stops a running darkice process > - 'restart' stops and starts a darkice process safely > - 'restartifdown' checks the darkice process and create a new one when > crashed - this could be used i.e. in a cron job to make shure darkice is > running all the time > - 'status' checks the running darkice process > > Any contribution, correction or opinion is welcome here. > > btw: the script is available for download here too: > -> ftp://ftp.syndicat.com/pub/darkice/darkice > -> http://www.syndicat.com/pub/darkice/darkice > > --- snip --- > #!/bin/sh > # generic init file for darkice > # > # Niels Dettenbach - nd@xxxxxxxxxxxx - 2009-11-05 > # GPL (2009) > # 0.4 > > ## settings ## > # check your paths! > > program=/usr/bin/darkice > pidfile=/var/run/darkice.pid > configfile=/etc/darkice.cfg > logfile=/var/log/darkice.log > progname="darkice" > restart_delay=2 > verbose="5" > > ## end of settings ## > > RETVAL=0 > if [ ! -f $configfile ] > then > echo "$progname: config file not found" > exit > fi > if [ ! -f $program ] > then > echo "$progname: programm file $program not found" > exit > fi > > case $1 in > 'start') > if [ -f $pidfile ]; then > PID=`cat $pidfile` > running=`ps --no-headers -o "%c" -p $PID` > if ( [ "$progname" == "$running" ] ); then > echo "$progname is still running" > else > echo "$progname seems crashed - PID does not match > the deamon" > echo "removing stale PID File $pidfile" > rm $pidfile > $0 start > exit $? > fi > exit 0 > else > echo -n $"Starting $progname " > RETVAL=1 > $program -v $verbose -c $configfile 2>%1 >> $logfile & > echo > RETVAL=$? > if [ $RETVAL -eq 0 ]; then > echo $! > $pidfile > echo " started" > else > echo " not started" > echo $RETVAL > exit 0 > fi > RETVAL=$? > fi > ;; > 'stop') > if [ -f $pidfile ]; then > echo -n $"Stop $progname " > PID=`cat $pidfile` > kill -s TERM $PID 2> /dev/null > echo > sleep $restart_delay > rm $pidfile > echo " stopped" > else > echo "$progname not running" > fi > RETVAL=$? > ;; > 'status') > if [ -f $pidfile ]; then > PID=`cat $pidfile` > running=`ps --no-headers -o "%c" -p $PID` > if ( [ "$progname" == "$running" ] ); then > echo "$progname IS running with PID `cat > $pidfile`." > else > echo "$progname process is dead or stale PID File > $pidfile" > exit 0 > fi > else > echo "$progname is not running" > exit 0 > fi > ;; > 'restart') > $0 stop > $0 start > RETVAL=$? > ;; > > 'restartifdown') > if [ -f $pidfile ]; then > PID=`cat $pidfile` > running=`ps --no-headers -o "%c" -p $PID` > if ( [ "$progname" == "$running" ] ); then > echo "$progname IS running with PID `cat $pidfile` > - no restart." > else > echo "$progname PID $PID seems dead - restart" > $0 stop > $0 start > RETVAL=$? > fi > else > echo "PID file $pidfile found - restart" > $0 stop > $0 start > RETVAL=$? > fi > ;; > > *) > echo "Usage: $0 {start|stop|restart|status|restartifdown} " > exit 1; > ;; > esac > > exit $RETVAL > > --- snap --- > > May be there are still exit codes which are not correct in each situation > - pls correct me here if you find something wrong. > > > cheers, > > > Niels. > -- > > --- > > Niels Dettenbach > --- > Syndicat IT&Internet > http://www.syndicat.com > T.-Muentzer.-Str. 2, 37308 Heilbad Heiligenstadt - DE > --- > Kryptoinfo: > PGP public key ID 651CA20D > Fingerprint: 55E0 4DCD B04C 4A49 1586 88AE 54DC 4465 651C A20D > https://syndicat.com/pub_key.asc > --- >