diff options
author | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
---|---|---|
committer | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
commit | 415856bdd4f48ab4f2732996f0bae58595092bbe (patch) | |
tree | ede2018b591f6dfb477fe9341ba17b9bc000fab9 /extra/icecast/icecastd |
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'extra/icecast/icecastd')
-rw-r--r-- | extra/icecast/icecastd | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/extra/icecast/icecastd b/extra/icecast/icecastd new file mode 100644 index 000000000..e6c91b08c --- /dev/null +++ b/extra/icecast/icecastd @@ -0,0 +1,66 @@ +#!/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 |