1

Я ищу что-то, что, я уверен, там, но я не могу найти это.

У меня есть долго работающая программа (симуляция Matlab), которая работает на Mac в течение 24 часов или более в моем офисе. Иногда происходит сбой программы, поэтому я ищу программу или команду, которая может периодически проверять работоспособность процесса, а если нет, отправляет мне электронное письмо, чтобы я мог войти в систему удаленно и перезапустить программу / исправление эта проблема.

Чем удобнее для пользователя, тем лучше, так как я бы хотел, чтобы неопытные пользователи могли использовать его самостоятельно.

3 ответа3

2

Некоторое время я не использовал Matlab, но, насколько я понимаю, из поддержки MathWorks, если ваш код вылетает, вы получите matlab_crash_dump.XXXX файл в вашей домашней папке, где XXXX это номер. Затем вы можете использовать Hazel, чтобы обнаружить добавление этого файла, а затем использовать рабочий процесс Automator, чтобы отправить вам электронное письмо.

Я хотел бы проверить это, но в настоящее время у меня нет ничего, что могло бы сломать Matlab.

0

Вы можете сделать это с помощью простого сценария. Любой сценарий, с которым вам удобно, будь то bash, ruby, applecript или любой другой.

У меня был установлен скрипт bash для задания cron, который проверял, запущен ли сервер Teamspeak, и если нет, запускал его.

0

Если вы хотите оставить процесс запущенным (или, скорее, перезапустите его, если он выйдет), используйте 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, и, если да, отправляет вам электронное письмо. Один из встроенных называется "оповещение о новом предмете" и, вероятно, является хорошей отправной точкой для некоторой генетической модификации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .