Глосарій/Процеси, які ви побачите
launchd
Коротка відповідь
launchd — перший процес, який macOS запускає під час завантаження, з ідентифікатором процесу 1. Він запускає фонові служби, агенти й багато інших процесів, що працюють у системі та для кожного користувача, і керує ними.
Коли Mac завантажується, ядро запускає launchd, а launchd запускає майже все інше. Він також запускає служби на вимогу, наприклад коли їх запитує програма, і перезапускає системні служби, які несподівано зупинилися.
У Моніторі активності ви зазвичай побачите один launchd — той, що має PID 1. Зазвичай він використовує дуже мало ресурсів процесора й памʼяті.
Чому launchd сильно навантажує процесор
launchd сам рідко виконує важку роботу. Коли він здається зайнятим, він часто запускає процеси знову й знову — наприклад, фоновий елемент, який аварійно завершується й раз у раз перезапускається.
Пошукайте в Моніторі активності процес, який постійно зʼявляється й зникає, або перевірте Системні параметри > Загальні > Автозапуск, щоб побачити, яким фоновим елементам дозволено працювати. Вимкнути непотрібний фоновий елемент — безпечний перший крок.
Чому не варто завершувати launchd
Системний launchd — батьківський процес для всієї системи. Його не можна завершити звичайним способом, а зупинка launchd користувача завершить ваш сеанс. Натомість виправте процес, який він постійно запускає.
Як знайти елемент автозапуску, що стоїть за launchd
Коли launchd здається зайнятим, справжнє питання в тому, що саме він постійно запускає. Спершу перевірте фонові елементи, яким ви дозволили працювати.
- Виберіть меню Apple > Системні параметри, натисніть «Загальні» на бічній панелі, а потім — «Автозапуск і розширення».
- Перегляньте елементи, що відкриваються під час входу в систему, і список програм, яким дозволено працювати у фоновому режимі. Усе, чого ви не впізнаєте або чим більше не користуєтеся, — кандидат на вимкнення.
- Вимикайте по одному елементу й стежте за launchd у Моніторі активності. Якщо його навантаження на процесор падає, ви знайшли цей елемент.
- Якщо елемент належить програмі, якою ви ще користуєтеся, оновіть програму або перевірте її власні параметри. Якщо програма вам більше не потрібна, видаліть її власним деінсталятором, якщо він є.
Як помітити службу, яка постійно перезапускається
Служба, що аварійно завершується й запускається знову, виглядає як процес, який на мить зʼявляється в Моніторі активності, зникає й повертається з новим PID. Якщо впорядкувати вкладку «Центральний процесор» за PID від найбільшого, такі процеси легше помітити, бо кожен перезапуск отримує більший номер.
У Терміналі launchctl list показує завдання, які launchd завантажив для вашого облікового запису, у трьох стовпцях: PID, якщо завдання працює, його останній код завершення та мітку. Дефіс у першому стовпці означає, що завдання зараз не працює. Відʼємний код — це сигнал, який зупинив завдання, і в багатьох завдань Apple він є, бо macOS навмисно зупиняє неактивні служби, тож ненульовий код сам по собі не є проблемою.
Для підозрілої мітки виконайте launchctl print gui/$(id -u)/<label>. У виводі є рядок runs — скільки разів launchd запускав це завдання. Якщо це число зростає щоразу, коли ви перевіряєте, завдання зациклилося на перезапусках. Ці команди лише читають інформацію.
Де зберігаються фонові елементи сторонніх розробників
launchd читає описи завдань із кількох папок. Власні завдання Apple лежать у /System/Library/LaunchAgents і /System/Library/LaunchDaemons, і їх варто не чіпати. Елементи, встановлені іншими програмами, зазвичай містяться в таких папках:
~/Library/LaunchAgents: агенти лише для вашого облікового запису./Library/LaunchAgents: агенти для всіх користувачів, встановлені адміністратором або інсталятором програми./Library/LaunchDaemons: загальносистемні демони, встановлені адміністратором або інсталятором програми.
Демони, агенти та служби XPC
launchd запускає кілька видів завдань, і їхні назви зʼявляються в Моніторі активності та у виводі launchctl. Демон — це загальносистемна служба, одна копія якої працює для всіх користувачів Mac, і в неї немає інтерфейсу. Агент працює окремо для кожного користувача, який увійшов у систему, і може взаємодіяти з ним.
launchd також керує службами XPC — невеликими допоміжними програмами всередині програм і фреймворків. Коли програма передає роботу одній із них, launchd запускає її на вимогу, і вона зʼявляється в Моніторі активності як окремий процес. Це одна з причин, чому процеси з незнайомими назвами зʼявляються й зникають, поки ви користуєтеся програмою.
Що питають люди
Що таке launchd на Mac?
Це диспетчер служб macOS. Це перший процес, що запускається під час завантаження, і він запускає більшість інших процесів та наглядає за ними.
Чому є кілька процесів launchd?
Один працює для системи (PID 1), а додаткові екземпляри — для сеансів користувачів. Це нормально.
Чи можна примусово завершити launchd?
Ні. Він забезпечує роботу решти системи. Якщо він здається зайнятим, пошукайте фоновий елемент, що постійно перезапускається.
Чи launchd — це вірус?
Ні. launchd — частина macOS, і він завжди працює з PID 1. Шкідливе ПЗ може додавати власні завдання, які запускатиме launchd, тому корисно мати звичку перевіряти розділ «Автозапуск і розширення».
Що показує launchctl list?
Кожне завдання, яке завантажив launchd, з його PID, якщо воно працює, останнім кодом завершення та міткою. Мітки зазвичай містять назву компанії та продукту, тож за ними видно, яка програма встановила завдання.
Чи безпечно видаляти елементи з LaunchAgents?
Лише для програм, які ви впізнаєте й більше не використовуєте, і краще вимкнути елемент у розділі «Автозапуск і розширення» або скористатися деінсталятором програми. Ніколи нічого не видаляйте з папок усередині /System.
Повʼязане
Покроково: Чому Mac не засинає.
Шукаєте щось краще за Монітор активності? Дивіться найкращі альтернативи Монітору активності для Mac або перегляньте усі терміни глосарію.