Как «заморозить» любой процесс или программу на время.

Я всегда умудряюсь поназапускать много приложений. И это не умственное отклонение. Мне так удобнее работать, – когда каждая нужная программа всегда запущена и всегда под рукой. Удобство продолжается, пока в работу не вклинивается Photoshop и ещё какая-либо «тяжёлая» программа, например, Safari с вечно глючным Flash. Эта парочка – мастаки по «укладыванию» процессора. Понятное дело, что завершать Safari с кучей открытых окон и вкладок лишь для того, чтоб немного поработать в графическом редакторе, – не очень классная затея. При этом, однако, хочется чтоб и «фотошоп» работал как нужно, а не по-полчаса «думал» над применением каждого фильтра. Как быть в таком случае, когда и прожорливую программу завершать не хочется, но и ресурсы процессора нужно высвободить? Когда вы останавливаетесь перед подобным выбором, то лучшим решением, по крайней мере для меня, становится «заморозка». Под «заморозкой» на самом деле подразумевается временное прекращение работы какой-либо программы, после чего её снова можно «разморозить» без потери данный. Одним словом – «пауза» в работе программы.

Данный «эффект паузы» достигается простой терминальной командой, которая посылает ядру операционной системы установку на приостановку работы нужного нам приложения. Для «заморозки» программы нам нужно узнать её PID, представляющий из себя числовой идентификатор. Его можно узнать несколькими способами:

[pl_badge type=”info”]1[/pl_badge] При помощи Терминала (выполняем вот такую команду и получаем PID): pgrep -f Safari Вместо Safari можно вписать название любого другого приложения.
[pl_badge type=”info”]2[/pl_badge] При помощи приложения Мониторинг системы: Как в Mac OS X узнать PID процесса или программы.

Когда PID нам известен можно приступать к манипуляциям. Открываем Терминал и выполняем вот такую команду для «заморозки»: kill -STOP PID Где PID, как уже говорилось выше, идентификатор нашего прожорливого приложения. После выполнения данной команды программа как-бы зависнет, при этом потребление ею процессорной мощности сведётся к нулю. Для «разморозки» нужно выполнить вот такую команду: kill -CONT PID Весь процесс можно немного упростить, сведя процесс «заморозки» и «разморозки» программы или процесса к выполнению одной команды, но при условии, что вы знаете как правильно называется программа или процесс. Например, для заморозки Safari можно использовать вот такую комбинированную команду: kill -STOP `pgrep -f Safari` Соответственно для разморозки вот такую: kill -CONT `pgrep -f Safari` Здесь важно не телько правильное написание названия приложения или процесса, здесь так же учитывается регистр букв. Так, например, в данном случае «Safari» и «safari» – это не одно и то же. Можно, конечно, пойти ещё дальше и придумать какой-то аппелт, но это тема отдельного разбирательства.

Share this article
0
Share
Prev Post

MacDaily.me исполняется 2 года!

Next Post

Quell. Немного логики. Под iOS.

Comments 7
  1. Приветствую, а можно это прикрутить в док в любом выпадающем меню правой кнопке по иконке, нереально удобно получится!

    и еще вопрос, на относительно старом маке неприятно когда система постепенно кушает от гига и выше оперативке, в мониторинге я вижу не нужные даемоны , есть прога которая как при джейле айфона можно отключать ненужные даемоны?
    Да, понимаю что отключение того или иного может привести к крешу, на опыте айфона уже понимаю как это работает)

    1. Привет! На счёт первого вопроса – да, можно создать апплет или службы для заморозки известных приложений: Skype, Safari, iTunes, FireFox, Opera, Google Chrome и так далее… Это реально. На счёт второго вопроса – это тоже реально, но я не знаю, есть ли приложения, способные всё это делать в несколько кликов. Почти все службы Mac OS X находятся в LaunchDaemons и LaunchAgents:

           ~/Library/LaunchAgents         Пользовательские службы, предоставленные пользователем.
           /Library/LaunchAgents          Пользовательские службы, предоставленные администратором.
           /Library/LaunchDaemons         Системные службы, предоставленные администратором.
           /System/Library/LaunchAgents   Службы Mac OS X, предоставленные пользователем.
           /System/Library/LaunchDaemons  Системные службы Mac OS X.
      

      Остановку служб можно делать «ручками» через терминал вот такой командой: launchctl unload /Путь/к/сервису/com.apple.SomeService.plist В принципе, можно выудить службы, которые не являются системной необходимостью, составляем список этих служб, пишем скрипт и вставляем его в автозагрузку. После загрузки системы скрипт будет автоматом останавливать все ненужные сервисы. Немного полезной информации о работе служб можно почерпнуть здесь.

  2. Еще можно AppKiller использовать. Там только с BSD сигналами нужно разобраться.

    1. «Утилита» для продвинутых супермена юзверей и сис.админов, позволяющая творить чудеса 😉

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Read next