[Icecast-dev] [PATCH] Init Startup Scripts for Icecast
Claudius Zingerli
icecast-devmail at zeuz.ch
Sat Feb 18 07:34:34 PST 2012
Hi,
In order to automatically start icecast at system boot, I created a
startup script for icecast (adapted from /etc/init.d/openssh).
In order to make this work, you need to create:
cat /etc/sysconfig/icecast
#Icecast service startup parameters
OPTIONS='-c /usr/local/etc/icecast.xml'
Adapt you icecast.xml to create a pid file in the standard location:
Instead of <pidfile>/usr/local/share/icecast/icecast.pid</pidfile> use:
<pidfile>/var/run/icecast.pid</pidfile>
(or adapt the init script to look in /usr/local)
Then put the following code in /etc/init.d/icecast and mark it
executable and do "chkconfig --add icecast" to register the service.
#!/bin/bash
#
# chkconfig: 2345 88 55
# Description: Icecast init.d script
# Adapted by zeuz from: openssh initd script
# Get function from functions library
. /etc/init.d/functions
# pull in sysconfig settings
[ -f /etc/sysconfig/icecast ] && . /etc/sysconfig/icecast
prog="icecast"
PID_FILE=/var/run/${prog}.pid
PROG_FILE=/usr/local/bin/${prog}
OPTIONS+=' -b'
RETVAL=0
# Start Icecast
start() {
echo -n $"Starting ${prog}: "
# echo -n $"${PROG_FILE} ${OPTIONS} >/dev/null 2>&1 && success ||
failure"
${PROG_FILE} ${OPTIONS} >/dev/null 2>&1 && success || failure
RETVAL=$?
[ "${RETVAL}" = 0 ] && touch /var/lock/subsys/${prog}
echo
}
# Stop Icecast
stop() {
echo -n $"Stopping ${prog}: "
if [ -n "`pidfileofproc ${prog}`" ] ; then
echo "killproc ${prog}"
else
failure $"Stopping ${prog}"
fi
RETVAL=$?
# if we are in halt or reboot runlevel kill all running sessions
# so the TCP connections are closed cleanly
if [ "x${runlevel}" = x0 -o "x${runlevel}" = x6 ] ; then
killall ${prog} 2>/dev/null
fi
[ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/${prog}
echo
}
### main logic ###
case "${1}" in
start)
start
;;
stop)
stop
;;
status)
status -p $PID_FILE ${prog}
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/${prog} ] ; then
stop
sleep 3
start
fi
;;
restart|reload)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
RETVAL=1
esac
exit 0
I hope that helps. I think it might be useful. The code has been tested
on RHEL 5. Maybe someone could put that file in a contrib directory. (or
adapt the Makefile to automatically place the init script)
I'll open a ticket as soon as I get access to the trac repo.
Cheers
Claudius
More information about the Icecast-dev
mailing list