Я сделал небольшое приложение-автоматизатор, чтобы помочь мне запустить и завершить apache (еще один для mysql), чтобы мне не приходилось идти в терминал и делать это (да, я такой ленивый).
Теперь вот яблочный скрипт, который я использую для него:
on run {input, parameters}
set apache2state to (do shell script "/bin/ps -arx |/usr/bin/grep apache2 |wc -l")
repeat until apache2state does not start with " "
set apache2state to text 2 thru -1 of apache2state
end repeat
if apache2state is equal to "3" then
do shell script "/opt/local/bin/port load apache2" with administrator privileges
else
do shell script "/opt/local/bin/port unload apache2" with administrator privileges
end if
end run
Теперь это работает, за исключением того факта, что я на самом деле сравниваю целочисленные значения, относящиеся к числу процессов, которые выполняет apache ... так что это не совсем надежно.
Есть ли лучший способ проверить, работает ли apache (и mysql, у меня точно такой же скрипт). Проблема в том, что когда они отключены, команда оболочки будет возвращать целочисленное значение точно так же (а не только 1 для процесса grep ..)
спасибо
ИЗМЕНЕНО, чтобы указать, что решение здесь работает плохо, поскольку grep будет возвращать любой экземпляр потоков apache и любой другой процесс, который говорит apache (например, tail -r /var/log/apache2/error.log).