#!/bin/sh export PATH=$PATH:/usr/bin/local cname=`scutil --get ComputerName` export CNAME=$cname pmt=/tmp/pmset-test.txt pmv=/tmp/pmset-audiowakepids.txt pidf=/tmp/pmset-test-pid.txt echo "" echo "" echo "// idlecheck_quitaudioprevent" echo "----------------------------------------------" pmset -g assertions > ${pmt} echo "" > ${pmv} fgrep "Playing audio" ${pmt} | fgrep "NoIdleSleepAssertion" | sed 's/^.*pid \([0-9]\{1,6\}\)(\(.*\)).*$/\1 \2/' > ${pmv} tsize=`stat -f%z ${pmv}` #echo "file size: ${tsize}" zs=0 if [ $tsize -gt 0 ]; then cat ${pmv} | while read line do pid=$(echo $line | awk '{print $1}') name=$(echo $line | awk '{print $2}') #echo "PID: ${pid}" #echo "NAME: ${name}" echo "* quitting Playing Audio Process: ${name} (${pid})" osascript -e "ignoring application responses" -e "quit app \"$name\"" -e "end ignoring" sleep 3 ps -p ${pid} > ${pidf} pfsz=`stat -f%z ${pidf}` if [ $pfsz -gt 40 ]; then echo " killing pid as script didn't kill it? pid ${pid}" sleep 3 kill -9 $pid else echo " quit successfully!" fi done else echo "* no Playing Audio processes" fi if [ -f "${pmt}" ]; then rm ${pmt}; fi if [ -f "${pmv}" ]; then rm ${pmv}; fi if [ -f "${pidf}" ]; then rm ${pidf}; fi