#!/bin/sh

clear_shm() {
    ipcs -mp | \
      fgrep " `id -un` " | \
      while read ID NAME CPID LPID; do 
        if [ ! -d "/proc/$CPID" ] && [ ! -d "/proc/$LPID" ]; then 
          ipcrm -m "$ID" 
        fi 
      done
}

if [ "$1" = "-f" ] || kdialog --warningcontinuecancel \
   'This will terminate the JACK audio server and force it to restart.'; then

    killall jackd jackdmp qjackctl wine wineserver wine-preloader >/dev/null 2>&1
    sleep 2
    killall -9 jackd jackdmp qjackctl wine wineserver wine-preloader >/dev/null 2>&1
    sleep 1
    clear_shm
    rm -f /tmp/rplugin_* /tmp/wine.log.*
    ( setsid /usr/bin/qjackctl -s & )
fi

