2009-07-26 4 views
2

Мне интересно, как установить Launchd для перезапуска моего приложения, если пользователь не выбрал «Quit» из верхней панели. Бывают случаи, когда что-то может случиться с приложением, и это может заставить выйти, и если предпочтение выбрано, я хочу, чтобы он автоматически возобновлялся. Я просмотрел его перед публикацией здесь, и я слышал, что Launchd будет очень хорош в этом. Есть ли у кого-нибудь советы о том, как это сделать?Launchd Relaunch App on Quit

Спасибо за любую помощь.

ответ

2

Пусть ваша программа запишет пустой файл .something в домашней папке пользователя, когда приложение запущено. Удалите файл .something, когда приложение завершает работу. Теперь вы можете написать небольшой скрипт (сценарий AppleScript или shell), который проверяет, работает ли ваше приложение, и в случае, если это не так (путем проверки файла .something). Затем скрипт может, при необходимости, перезапустить приложение. Вы можете запланировать запуск сценария автоматически при запуске с помощью запуска.

+0

Hi Diederik: Хорошая идея, однако у меня есть один вопрос об этом. Этот вопрос: Когда мне запускать сценарий? Могу ли я настроить его для мониторинга, если приложение как-то закрывается или что-то в этом роде? – PF1

+0

Скрипт должен работать все время. Внутри скрипта вы должны использовать время сна (например, Unix sleep (10)), чтобы скрипт не использовал слишком много CPU. Вместо Launchd вы также можете добавить скрипт в элементы входа пользователя таким образом, что настройка предпочтения будет иметь эффект только для текущего пользователя (который должен быть предпочтительным, как я предполагаю). – diederikh

+0

Спасибо за этот совет Дидерик. Итак, вы говорите, что скрипт должен проверять этот файл каждые 10 секунд? И тогда, если бы он был там, он попытался бы открыть приложение (и если приложение было открыто, то оно не выглядело бы так, как если бы что-нибудь произошло). Но, и я предполагаю, что нет, есть ли способ получать уведомления, если приложение завершает работу? Кажется, это было бы легче. – PF1

2

Вы можете использовать параметр SuccessfulExit для KeepAlive только для возобновления приложения, если оно не прекратилось нормально. Подробнее см. В разделе this Mac OS X Hints entry и/или справочную страницу launchd.plist.

+0

Привет smorgan: Спасибо за ссылку. Это выглядит очень хорошо! – PF1

 Смежные вопросы

  • Нет связанных вопросов^_^