Как пройти через все окна терминала, остановить все запущенные процессы и закрыть окно, если окну не присвоена определенная строка? - PullRequest
0 голосов
/ 13 июня 2019

У меня есть окно терминала с именем "myTerminalWindow", и я не смогу закрыть все другие окна терминала, не названные "myTerminalWindow".В других окнах может быть запущен процесс, поэтому мы должны были бы остановить процесс, прежде чем закрывать окно.Как мне это сделать?

1 Ответ

0 голосов
/ 17 июня 2019

Вот один способ, который должен работать независимо от того, как настроены параметры для закрытия окон Терминала:

tell application "Terminal"
    set theWindows to windows
    repeat with aWindow in theWindows
        if (name of aWindow) contains "myTerminalWindow" then
            display dialog ("Will not close " & name of aWindow)
        else
            set theProcesses to processes of aWindow
            set clean commands of current settings of aWindow to theProcesses
            close aWindow without saving
        end if
    end repeat
end tell

Обновляя свойство "clean команды" списком запущенных в данный момент процессов, вы сообщаете Терминалу, что все в порядке, чтобы завершить процессы без запроса.

Если вам нужен более изощренный способ завершения запущенных процессов, вы можете перебрать список запущенных процессов и закрыть их любым удобным для вас способом. Для этого будет полезна команда терминала do do script.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...