Есть ли способ закрыть/убить «< app> quit неожиданно» окно с терминала или скрипта bash? Каково название процесса?Закрыть «<app> quit неожиданно» окно с терминала/bash
(решения по автоматизации AppleScript не acceptible.)
Есть ли способ закрыть/убить «< app> quit неожиданно» окно с терминала или скрипта bash? Каково название процесса?Закрыть «<app> quit неожиданно» окно с терминала/bash
(решения по автоматизации AppleScript не acceptible.)
Вы можете:
killall UserNotificationCenter
Он будет убивать UserNotificationCenter
(мысленные ВСЕ эти открытые окна тоже), поэтому сообщение исчезает. (Не волнуйтесь, следующее сообщение об ошибке начнет снова автоматически.)
Но (ИМХО) лучше использовать команду osascript
в форме:
osascript -l JavaScript <<EOS
... apple-scripting using JavaScript ...
EOS
ИМХО JavaScript гораздо проще понимать (для обычного программиста) как «стандарт» applescript
.
Этот ответ действительно нуждается в коде сценариев, который фактически закрывает все эти окна. –
Я не уверен, если яблоко еси те же основные утилиты, но я пришел из мира Unix тоже.
например: решение должно найти идентификатор процесса по имени. на моей системе Linux можно использовать следующую команду, чтобы найти идентификатор процесса ...
ps -aux
Другой вариации будет сверху. оба дают тонну информации, и я должен отфильтровать код с grep. После этого я буду фильтровать строку через cut или sed. Последнее, но не менее важное: kill команда.
скрипт должен выглядеть некоторые, как это ...
#!/bin/sh
PNAME="< app> quit unexpectedly"
ps -aux | grep "$PNAME" | cut -d" " -f2 | kill
Чтобы быть hornest я никогда не использовал бы некоторые, как это, вместо этого выполнить убить вручную ..
Вы можете отключить его появление в первую очередь на:
defaults write com.apple.CrashReporter DialogType none
Другие возможные значения developer
† (показать трассировки стека для всех процессов) и crashreport
(по умолчанию).
Это также означает, что никакие записи не будут записаны на Console.app. Сам диалог показывает UserNotificationCenter
и может быть отключен (наряду со многими другими уведомлениями) по:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.UserNotificationCenter.plist
Некоторого контекст:
Маха имеет концепцию портов исключения. Каждый поток/процесс имеет задачу, процесс и порт исключения хоста, которые проверяются при возникновении исключения. Демон CrashReporter регистрирует порт исключения хоста и активируется, когда другой обработчик сигнала не запускается. Затем он создает трассировку стека и карту памяти процесса и дает команду UserNotificationCenter
, чтобы показать ее. По умолчанию он делает это только для приложений с графическим интерфейсом.
На High Sierra, я должен был использовать defaults write com.apple.CrashReporter -string "developer"
Немного больше информации может помочь. Вы имеете в виду, что приложение работает, и вы хотите его убить? Если он уже вышел неожиданно, тогда он ушел, что осталось убить?! ... ИЛИ вы имеете в виду, что он зависает, то есть зависает, и вы хотите отправить его «SIGKILL» ?! – Arash
Что не так с applescript? (Я имею в виду сценарий оболочки, использующий 'osascript -e 'приложение-приложение« UserNotificationCenter ».... etc ....'') – jm666