#!/bin/bash . /etc/rc.conf . /etc/rc.d/functions timeo=30 getPID() { pgrep -u nobody icecast 2>/dev/null } case $1 in start) stat_busy "Starting Icecast Server" if getPID >/dev/null; then # already running stat_fail exit 1 else /usr/bin/icecast -b -c /etc/icecast.xml &>/dev/null while (( timeo > 0 )); do if getPID >/dev/null; then add_daemon icecast stat_done exit 0 fi sleep 1 (( timeo-- )) done stat_fail exit 1 fi ;; stop) stat_busy "Stopping Icecast Server" if ! getPID >/dev/null; then # not running stat_done exit 1 fi if ! kill $(getPID) &> /dev/null; then stat_fail exit 1 fi while (( timeo > 0 )); do if getPID >/dev/null; then rm_daemon icecast stat_done exit 0 fi sleep 1 (( timeo-- )) done stat_fail exit 1 ;; restart) $0 stop $0 start ;; *) echo "usage: $0 {start|stop|restart}" esac exit 0