У меня немного сложная настройка, но позвольте мне посмотреть, могу ли я упростить
Я запускаю моно-приложение на удаленной машине OSX. Это приложение может иногда приводить к аварийному завершению работы моно-среды выполнения.
Скрипт оболочки восстановления запускается каждые 2 минуты через launchctl. Этот скрипт определяет смерть моно по ps ax | grep mono
Если процесс мертв, он запускает следующие сценарии приложения, чтобы создать новое окно терминала.
osascript -e 'tell app "Terminal" to close every window'
osascript -e 'tell app "Terminal" to do script "mono --server myapp.exe'
причина, по которой я запускаю моно-приложение в окне терминала в «пользовательском пространстве», заключается в том, что приложение взаимодействует с другими оконными приложениями и не может быть создано непосредственно из файла appchecking.sh
Однако иногда вышеупомянутый процесс не удается со следующей ошибкой
$ osascript -e 'tell application "Terminal" to open'
31:35: execution error: An error of type -10810 has occurred. (-10810)
Что странно, если в этом состоянии я подключаюсь по SSH к затронутой машине, кажется, что Терминал не работает. А ps ax | grep Terminal
ничего не дает. Однако, если я подключу VNC к затронутой рабочей станции, процесс терминала внезапно станет видимым, и мой скрипт больше не будет возвращать эту ошибку.
Компьютер OSX настроен на автоматический вход в систему как пользователь по умолчанию. И если я перезагружу машину в этом состоянии, она вернется в норму. Я предполагаю, что является источником моей ошибки -10810 (предполагая, что я каким-то образом выхожу из системы, и мой appcheck.sh больше не работает как мой пользователь?)