Иногда возникает необходимость выявить приложение или процесс, чрезмерно потребляющий ресурсы вашего мака. Обычно для этих целей используют Мониторинг системы, в котором находят прожорливое приложение и принудительно завершают его. Такой способ довольно грубый и не совсем «гуманный», поскольку принудительное завершение приложения может вызвать потерю данных. Вместо этого, удобнее будет воспользоваться командой Терминала kill, которая безболезненно может на время приостановить процесс или приложение, а затем продолжить его выполнение.

* * *

Как приостановить и запустить приложение с помощью PID

Этот метод предпочтителен, поскольку он фактически используется в системе по умолчанию, с тем лишь отличием, что вы можете добавлять к команде различные ключи, влияющие на ее поведение (в данном случае на приостановку приложения). Также, он позволяет быстро остановить программу, что подразумевает прекращение выполнение ее кода и, как следствие, снижение потребления ресурсов системы.

Снимок экрана 2014-05-19 в 12.34.26Первым делом, нам нужно узнать PID приложения, которое мы собираемся приостановить. PID — это process ID, номерной идентификатор приложения, который отображается на вкладке ЦП, в Мониторинге системы. Например, PID iTunes у меня — 525 (у вас он будет отличаться).

Открываем Терминал (из папки ПрограммыУтилиты или через Spotlight) и вбиваем следующую команду (подставив PID приложения):
kill -STOP PID

Снимок экрана 2014-05-19 в 17.52.24

Снимок экрана 2014-05-19 в 12.34.10Сразу после этого, музыка перестанет играть (если она была запущена), а приложение будет приостановлено. Выполнение кода полностью прекратится и оно будет считаться зависшим (в Мониторинге системы отображается статус — Не отвечает).

Для возобновления работы приложения, также используется команда kill, но уже с другим ключом, вот как она выглядит:

kill -CONT PID

Снимок экрана 2014-05-19 в 17.53.02

Примечание. Не закрывайте Терминал, пока не продолжите работу приложения с текущим PID, иначе в дальнейшем могут возникнуть проблемы, если вы захотите его продолжить, а PID уже будет присвоен другому процессу.

Как приостановить и запустить приложение с помощью AppName

Если у вас возникли какие-либо проблемы с предыдущим способом или вы не хотите заморачиваться с PID, который каждый раз при запуске приложения изменяется — можно воспользоваться еще одним способом, работающим с именем приложения (AppName), которое в отличие от PID, всегда неизменно.

Снимок экрана 2014-05-19 в 17.44.10

Для этого мы воспользуемся командой killall с уже знакомыми нам ключами. Вспоминаем имя приложения или смотрим его в Мониторинге системы и подставляем в следующую команду:

killall -STOP "AppName"

Снимок экрана 2014-05-19 в 13.06.47Для продолжения, как вы уже наверное догадались, нам нужно использовать эту же команду, но с ключом -CONT. Она выглядит вот таким образом:

killall -CONT "AppName"

Снимок экрана 2014-05-19 в 17.51.07После этого работа приложения будет возобновлена и вы сразу же к нему вернетесь.

Примечание. Кавычки можно не ставить если имя приложения состоит из одного слова. Если же оно содержит пробелы, его нужно обязательно взять в кавычки.

Напоследок напомню, что команда killall в чистом виде (без каких либо ключей), мгновенно завершит любое приложение. Если это системные приложения OS X, например Finder, Dock — они будут просто перезапущены.

* * *

Остались вопросы, замечания или предложения? Добро пожаловать в комментарии — я всегда рад пообщаться и помочь. Оставайтесь с нами, впереди еще много интересного!