STOP!
Вы должны никогда сказать другому приложению завершить работу, если пользователь уже мог использовать его вне контекста использования вашей программой этого приложения.
Если у вашего пользователя уже открыто окно терминала и он что-то делает, то ваша программа будет мешать этому, когда она попытается уничтожить Terminal.app. Если у пользователя есть Terminal.app, настроенный на отсутствие запроса перед закрытием сеанса, в котором запущен только процесс входа в систему и оболочка, то вы в конечном итоге убьете все сеансы ssh пользователя без предупреждения.
(Как бы вам понравилось, если ваш текстовый процессор велел вашему веб-браузеру отобразить страницу, а затем завершил все сеансы браузера, когда вы закрыли одну страницу?)
Как минимум, используйте open -n -W -a
, но, если возможно, вообще не используйте Terminal, а просто перенаправьте стандартный вывод вашего исполняемого файла в NSTextView. Если ваш исполняемый файл должен взаимодействовать с пользователем, рассмотрите возможность использования процесса xterm
, который завершится сам по себе, когда ваш процесс завершится.