summaryrefslogtreecommitdiffstats
path: root/roles/stream/templates/on-disconnect
diff options
context:
space:
mode:
Diffstat (limited to 'roles/stream/templates/on-disconnect')
-rwxr-xr-xroles/stream/templates/on-disconnect29
1 files changed, 29 insertions, 0 deletions
diff --git a/roles/stream/templates/on-disconnect b/roles/stream/templates/on-disconnect
new file mode 100755
index 0000000..5847356
--- /dev/null
+++ b/roles/stream/templates/on-disconnect
@@ -0,0 +1,29 @@
+#!/bin/bash
+set -e
+PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
+PIDFILE="{{ icecast_restream_dir }}/{{ emacsconf_id }}-lowres-{{ item.id }}.pid"
+echo $(date) " on disconnect {{ item.id }} $*" >> {{ icecast_restream_dir }}/restream.log
+
+. /lib/lsb/init-functions
+
+#We need this function to ensure the whole process tree will be killed
+killtree() {
+ local _pid=$1
+ local _sig=${2-TERM}
+ for _child in $(ps -o pid --no-headers --ppid ${_pid}); do
+ killtree ${_child} ${_sig}
+ done
+ kill -${_sig} ${_pid}
+}
+
+stop() {
+ echo "Stopping $DESC... "
+ if test -f $PIDFILE; then
+ while test -d /proc/$(cat $PIDFILE); do
+ killtree $(cat $PIDFILE) 15
+ sleep 0.5
+ done
+ rm $PIDFILE
+ fi
+ echo "done"
+}