Não sei como você consertaria o que quer que esteja atrapalhando o script, mas você pode contornar isso usando um script de shell:
#!/bin/sh
tempfile=$(mktemp /tmp/XXXXXXXXXX)
ps -x >$tempfile
if grep httpd $tempfile && grep mysql $tempfile
then
/Applications/MAMP/bin/stopApache.sh
/Applications/MAMP/bin/stopMysql.sh
else
/Applications/MAMP/bin/startApache.sh
/Applications/MAMP/bin/startMysql.sh >/dev/null
fi
rm -f $tempfile
Como mencionei nos comentários, se você tiver scripts para Apache e MySQL que saem com êxito se os daemons respectivos estiverem em execução e sem êxito, você poderá usá-los em vez de gravar ps
output em um arquivo temporário e grep
pingar.
Como alternativa, você pode usar uma versão modificada do seu AppleScript original, usando apenas do shell script
e não tell application "Terminal" to do script
:
set myProcessInfo to do shell script ("ps -x")
if myProcessInfo contains "httpd" and myProcessInfo contains "mysql" then
do shell script "/Applications/MAMP/bin/stopApache.sh"
do shell script "/Applications/MAMP/bin/stopMysql.sh"
else
do shell script "/Applications/MAMP/bin/startApache.sh"
do shell script "/Applications/MAMP/bin/startMysql.sh > /dev/null"
end if