Як призупинити & Відновити програму або процес у Mac OS X
Потрібно швидко звільнити обчислювальну потужність? Ви можете легко зробити це, тимчасово призупинивши, а потім відновивши будь-який активний процес або програму в Mac OS X. Технічно це фактично «зупинка» та «продовження» процесу, але зупинку не слід плутати з більш агресивним вбивством або примусовий вихід із програм, і, отже, термінологія паузи чи зупинки часто легше розрізнити ці два.
Це означає, що ви можете взяти процес, який споживає 100% ЦП, і тимчасово призупинити його, поки ви робите щось інше, а потім відновити його, коли будете готові дозволити цьому процесу зробити свою справу. Це досягається за допомогою трюку командного рядка, і ми розглянемо два різні способи зробити це за допомогою команд kill і killall з прапорцями -STOP і -CONT. В ідеалі ви матимете певний комфорт і знання командного рядка, перш ніж використовувати це, але це, звичайно, не потрібно.
Перш ніж почати, запустіть програму Terminal, яку можна знайти в /Applications/Utilities/, а також запустіть Activity Monitor, який знаходиться в тій же папці.
Як тимчасово призупинити процес або програму в Mac OS X
Основний синтаксис для призупинення програми такий, де PID — це ідентифікатор процесу, який ви бажаєте призупинити:
kill -STOP PID
PID завжди є числом, і кожен процес, запущений на Mac, має пов’язаний ідентифікатор.
Якщо ви знайомі з отриманням ідентифікаторів процесів, то ви вже знаєте, що робити, використовуючи лише наведені вище команди, але якщо ні, то це те, про що ми розглянемо далі, і саме тому ми запустили «Діяльність» Монітор”
Пошук PID і зупинка пов’язаного процесу
Це зручніший метод, який використовує Монітор активності:
- У програмі Activity Monitor скористайтеся функцією пошуку у верхньому правому куті та введіть назву програми, яку потрібно призупинити (наприклад, iTunes)
- Відображаючи відповідні процеси та/або програми, знайдіть ідентифікатор процесу в стовпці «PID»
- Додайте відповідний PID до вищезгаданої команди kill, наприклад:
- Зверніть увагу, що активність ЦП для цього ідентифікатора процесу зараз становить 0%, що вказує на те, що процес призупинено (технічно, зупинено)
kill -STOP 3138
Не забувайте PID, або ще краще, не закривайте ще вікно терміналу, тому що той самий PID як ви відновите програму, щоб і надалі мати можливість використовувати її знову.
Ви побачите, що зупинка процесу вражає використання ЦП. Цей знімок екрана демонструє, як iTunes споживає 70% ЦП під час роботи Visualizer, і той самий процес iTunes після його зупинки за допомогою - Прапор СТОП. Процес буквально зупинено на місці:
Ті, хто має більше знань про командний рядок, можуть віддати перевагу використанню ps, а не Activity Monitor, що насправді дуже легко:
ps aux |grep Name
Змініть «Ім’я» на будь-яке ім’я початку процесу чи програми, знайдіть PID, а потім додайте його в команду kill:
kill -STOP 92841
Неважливо, чи використовуєте ви монітор активності чи ps для отримання PID, якщо ви вводите правильний ідентифікатор процесу під час використання команди kill.
Зауважте, що спроба використати програму, яку було призупинено, майже завжди призведе до перегляду пляжного м’яча смерті, що обертається, без використання ЦП. Таким чином, якщо ви хочете використовувати програму знову, ви повинні «відновити» її.
Як відновити «зупинену» програму або процес
Відновити зупинену або призупинену програму просто, просто трохи змініть команду kill і використовуйте той самий ідентифікатор процесу, який ви отримали під час попередніх кроків:
kill -CONT PID
Наприклад, щоб відновити роботу програми iTunes за допомогою попереднього PID:
kill -CONT 3138
Тепер iTunes знову можна використовувати без обертового курсору очікування. Разом з цим відбувається повернення до того рівня споживання ЦП, який існував раніше.
Знімок екрана нижче демонструє цей трюк із використанням команд kill і killall:
Використання -STOP і -CONT з killall по суті те саме, але воно має деякі обмеження щодо імен, тому ми розглянули більш прямий метод використання kill на основі PID. Тим не менш, давайте також продемонструємо це за допомогою killall.
Зупинка та продовження програм за назвою програми
Якщо ви знаєте програму або точну назву процесу, ви також можете використати команду «killall» з прапорцем -STOP, щоб зупинити процеси.Це може бути простіше для програм, які легко визначити за назвою, але це має обмеження, коли мова йде про роботу з процесами зі складними іменами або для призупинення певного процесу, який має повторювані процеси з однаковою назвою (наприклад, певна вкладка Chrome або вікно, змішане з багатьма процесами «Google Chrome Renderer»), тому ми спочатку розглянули підхід PID, оскільки він набагато пряміший.
Основна команда зупинки з killall така:
killall -STOP AppName
Не знаєте назву програми? Використовуйте ps і grep:
ps aux |grep AppName
Наприклад, ви можете використати grep для «Chrome», щоб знайти всі процеси з «Chrome» в назві:
ps aux|grep Chrome
Або ви можете просто націлити процес за допомогою конкретної назви програми, наприклад:
"killall -STOP -c Google Chrome"
Відновлення процесів і програм за допомогою killall полягає в зміні прапорця з -STOP на -CONT, все інше те саме:
killall -CONT AppName
Наприклад, щоб відновити програму з довгою назвою:
"killall -CONT -c Google Chrome"
Знову ж таки, програма/процес продовжуватиме працювати як зазвичай, а використання ЦП повернеться до того рівня, яке було до призупинення.
Програми або процеси без пробілів у назві можуть бути піддані безпосередньому впливу killall без будь-яких додаткових позначок чи індикаторів, як-от iTunes.