Если вы хотите оставить процесс запущенным (или, скорее, перезапустите его, если он выйдет), используйте launchd
. Там рецепт для поддержания TextEdit живого здесь, и Lingon доступен в качестве графического интерфейса пользователя , чтобы установить его.
Однако это не идеально подходит для вашей конкретной проблемы - launchd
перезапустит ваш процесс, когда он завершится, независимо от того, был он успешным или нет. Это может быть большой болью, если ваша программа перезаписывает совершенно хороший результат предыдущего запуска. Чтобы обойти это, вы можете обернуть вашу программу в сценарий (сценарий оболочки), который запустит программу, а затем, если она прошла успешно, удалить launchd
задание перед выходом. Что-то вроде:
#!/bin/bash
/my/matlab/program
#$? is the exit value of your program - convention is 0 for success, non-zero otherwise
if [ $? = 0 ]
launchd unload keep.my.matlab.running
fi
[редактировать]
Если Matlab производит вывод, как предполагает fideli, вы можете использовать действие с папкой для папки, в которую Matlab поместит свой отчет об ошибке. Просто напишите рабочий процесс Applescript или Automator, который принимает добавленные файлы, проверяет, являются ли они ошибкой Matlab, и, если да, отправляет вам электронное письмо. Один из встроенных называется "оповещение о новом предмете" и, вероятно, является хорошей отправной точкой для некоторой генетической модификации.