Все, что вам нужно сделать, это поставить символ «&» в конце вашей команды.Это отправляет его на задний план.Однако я бы не стал использовать ваш код.Этот повторный цикл будет выполняться вечно и порождать новые процессы до тех пор, пока он выполняется.Лучше всего было бы запустить «открытый скрипт», который периодически проверяет, запущен ли процесс.Если этого не произойдет, то яблочный скрипт может запустить его.Повторяющийся цикл - это не то, что вы хотите.Попробуйте этот код.Сохраните его как приложение и установите флажок «оставаться открытым» в окне сохранения.
on run
end run
on idle
set runShellScript to false
tell application "System Events"
if not (exists process "processName") then
set runShellScript to true
end if
end tell
if runShellScript then do shell script "/path/to/program &"
return 30 -- the script will stop for 30 seconds then run again until you quit the applescript
end idle