Один из способов сделать это - записать в файл идентификатор процесса сервера, когда он запускается, и выполнить другой скрипт для проверки, запущен ли этот процесс.
Например, скрипт A (длязапустить сервер безоговорочно):
#!/bin/sh
/Applications/NetBeans/glassfish-3.1.1/bin/./asadmin start-domain domain
# file name is arbitrary
pgrep whateverTheProcessNameIs > ~/.glassfish-server.pid
И в сценарии B:
#!/bin/sh
pid=`pgrep -F ~/.glassfish-server.pid` # file chosen in script A
if [ "x$pid" = "x" ] ; then
# process has died; restart by running script A
/path/to/scriptA
fi
Обратите внимание, что только Mac OS X 10.8 (Mountain Lion) по умолчанию устанавливает pgrep
;в противном случае вам придется использовать какой-либо другой метод (например, анализ ps
output), чтобы увидеть, какие процессы запущены.
Что касается периодического запуска этой проверки, существуют различные способы.Я предполагаю, что Альфред запустит любой исполняемый скрипт (chmod +x scriptA scriptB
), но я точно не знаю.