Скрінсейвер на Mac не закривається, а legacyScreenSaver їсть процесор
Опубліковано:
Якщо на Mac стоїть сторонній скрінсейвер, в Activity Monitor може висіти процес
legacyScreenSaver, який навантажує процесор ще довго після того, як
скрінсейвер зник з екрана. Вам не здається, і вірус тут ні до чого. Це відома
проблема того, як macOS запускає скрінсейвери, зроблені не Apple.
Що саме бачать користувачі
У вересні 2023 року, на першому релізі macOS 14 Sonoma, розробник скрінсейвера описав таке на форумі Apple для розробників: після закриття скрінсейвер невидимо продовжує анімацію й далі вантажить CPU та GPU. Здавалося, що кожен новий запуск додає ще одну копію, а вікно скрінсейвера так і не отримує сигналу зупинитися. На macOS Ventura той самий код поводився нормально. У гілці вказано номер звіту про помилку FB13041503.
Пізніші відповіді в тій самій гілці описують те саме на macOS 14.1.2 (близько 20% CPU у фоні на конфігурації з трьома дисплеями) і знову на початку 2024 року. В окремій гілці на форумі підтримки Apple, відкритій у листопаді 2023 року на macOS 14.1, користувач питає, чому процес тримає 1,3 ГБ памʼяті.
Що сказали в Apple
Інженер підтримки розробників Apple у жовтні 2023 року запитав, чи відтворюється проблема на новішій беті macOS 14.1, і зазначив, що не має надійних доказів її виправлення. У липні 2024 року він погодився, що зі сторонніми скрінсейверами під Sonoma багато помилок, і додав, що старий API скрінсейверів «спирається на складний шар сумісності, і це джерело постійних проблем». Розробникам він порадив подати запит на новий API скрінсейверів на основі розширень.
Офіційного виправлення в гілці немає, і в інших джерелах його теж не знайшлося. Чи трапляється це на конкретному Mac, залежить від скрінсейвера та релізу macOS.
Що можна спробувати
Жодна з цих порад не є схваленим Apple виправленням. Це просто практичні варіанти.
- Переконайтеся, що винен саме скрінсейвер. Відкрийте Activity Monitor
і знайдіть
legacyScreenSaver. Якщо він і далі навантажує процесор після пробудження Mac, це саме описаний випадок. - Завершіть цей один процес. Виберіть його в Activity Monitor і завершіть. На форумах Apple користувачі пишуть, що навантаження падає до норми, а один із них додає, що скрінсейвер і гарячі кути працювали далі. Це свідчення користувачів, а не порада Apple.
- Оновіть скрінсейвер. Деякі автори випускають власний обхід. Наприклад, у релізі 1.1.5 безкоштовного Matrix.saver є примітка про обхід саме цієї помилки Apple, яку там описано як зростання навантаження на CPU і памʼять при кожному запуску скрінсейвера.
- Видаліть сторонні скрінсейвери, якими не користуєтеся, і перезавантажте Mac. Якщо жодного не встановлено, цьому процесу нічого запускати.
- Візьміть щось, що не є скрінсейвером. Скрінсейвер працює всередині цього процесу, а звичайний застосунок ні, тож помилка до нього не дістає.
Де тут RainGlyph
RainGlyph — застосунок цифрового дощу для macOS. Це
звичайний застосунок у рядку меню, який малює дощ за іконками робочого столу, а не
пакет .saver, тож усередині legacyScreenSaver він не працює.
Але це стосується лише самого RainGlyph: будь-який інший сторонній скрінсейвер, який
лишився встановленим, усе одно може спричинити описане.
Якщо вам потрібен лише ефект «Матриці», огляд усіх реальних варіантів на Mac порівнює їх, зокрема безкоштовні.
Запитання й відповіді
Чи безпечно завершувати legacyScreenSaver в Activity Monitor?
Користувачі на форумах Apple пишуть, що після примусового завершення навантаження на процесор повертається до норми, а один із них додає, що скрінсейвер і гарячі кути працювали далі. Це свідчення користувачів, а не рекомендація Apple.
Чи стосується це власних скрінсейверів Apple?
Усі наведені повідомлення стосуються сторонніх скрінсейверів.
Чи виправлять це в Apple?
Публічних заяв про це немає. Єдина порада з боку Apple була для розробників: подати запит на новий API скрінсейверів.
Джерела: гілка 738547 на Apple Developer Forums (вересень 2023 — липень 2024); гілка 255256761 у спільноті підтримки Apple (листопад 2023 — жовтень 2024); примітки до релізів Matrix.saver на GitHub.