#!/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" }