Новости Hi-techПоследние новости

Сотни фоновых процессов в macOS: можно ли их отключить и нужно ли?

Откройте «Монитор активности», когда ваш Mac не сильно загружен, и вы увидите в нем сотни процессов. Даже в виртуальной машине с минимумом служб их не менее 500, а в «чистой» установке без открытых приложений реальный Mac может превышать 700. Очевидно, что некоторые из них, например WindowServer, необходимы, но разве нет многих, без которых мы могли бы обойтись? Этот вопрос мне задают постоянно, и в этой статье я постараюсь на него ответить.

процессы в mac

Одной из первых проблем при попытке определить, без каких процессов мы могли бы обойтись, является понимание того, что делает каждый из них и как они взаимосвязаны. Я сомневаюсь, что кто-либо в Apple знает их все, и попытка установить, что делают некоторые из них, была бы сложной задачей. Если мы предположим, что нам нужно идентифицировать всего 500 кандидатов, и на исследование каждого уходит в среднем одна неделя, это займет более 10 человеко-лет, и к тому времени они все снова изменятся. Изучение 500 постоянно меняющихся целей просто непрактично.

Когда проблемы становятся сложными, часто лучше всего схитрить, поэтому я собираюсь взяться за «низко висящие фрукты» и рассмотреть хорошо известную группу процессов, создающих резервные копии Time Machine. Я слежу за ними со времен macOS Sierra и часто изучаю их в логах. Они также являются хорошими кандидатами на удаление, поскольку многие люди не делают резервные копии с помощью Time Machine, а используют одну из его альтернатив. Так что у некоторых уже есть веские причины избавиться от backupd и его «родственников». Они также относительно обособлены: хотя для их работы требуются другие процессы, я не знаю никаких других подсистем, которым требуется Time Machine, что делает его потенциально одноразовым.

Настройте базовую виртуальную машину в macOS 26.2, и, даже если Time Machine никогда не был включен, вы увидите его процессы в списке «Монитора активности».

Вот backupd и backupd-helper, которые показывают, что они по-прежнему занимают небольшой процент процессорного времени, даже когда Time Machine полностью отключен.

Они также занимают немного памяти, здесь в общей сложности 5,1 МБ. Хотя это и немного, но в сумме по 500 процессам это становится значимым.

Эти два процесса контролируются демонами LaunchDaemons, хранящимися в /System/Library/LaunchDaemons, в списках свойств с именами com.apple.backupd-helper.plist и com.apple.backupd.plist. И вот наша первая проблема, поскольку они расположены в подписанном системном томе (SSV), поэтому мы никак не можем их изменить. То же самое относится и к другим 417 демонам LaunchDaemons и 460 агентам LaunchAgents, которые составляют большинство процессов, перечисленных в «Мониторе активности». Во времена до SSV можно было редактировать их списки свойств, чтобы предотвратить их запуск, но при работе с современной macOS это больше невозможно.

Если мы не можем остановить запуск процесса backupd-auto, есть ли какой-либо другой способ его заблокировать? Чтобы ответить на этот вопрос, нам нужно понять, как он планируется и отправляется.

До macOS Sierra резервные копии Time Machine запускались из launchd как события по времени, но с тех пор их планирование и отправка выполняются совместно Duet Activity Scheduler (DAS) и Centralised Task Scheduling (CTS) с использованием облегченного межпроцессного взаимодействия (XPC). DAS управляет огромным списком действий, включая com.apple.backupd-auto, и решает, когда отправить его в CTS для выполнения. Например, он не будет делать этого в течение первых пяти минут после запуска Mac, чтобы сначала дать поработать другим процессам.

Как только это время истечет, DAS решает запустить резервное копирование:
38.738 DAS 0:com.apple.backupd-auto:2052A3, Decision: CP Score: 0.949374}
38.738 DAS '0:com.apple.backupd-auto:2052A3' CurrentScore: 0.949374, ThresholdScore: 0.068531 DecisionToRun:1
38.762 DAS REQUESTING START: 0:com.apple.backupd-auto:2052A3

Затем CTS приступает к отправке через XPC:
38.762 CTS-XPC DAS told us to run com.apple.backupd-auto (0xb671bcc80)
38.844 CTS-XPC Initiating: com.apple.backupd-auto (0xb671bcc80)
38.846 CTS-XPC _xpc_activity_dispatch: beginning dispatch, activity name com.apple.backupd-auto, seqno 0
38.846 CTS-XPC _xpc_activity_begin_running: com.apple.backupd-auto (0x7a9014280) seqno: 0.
38.878 CTS-XPC Running (PID 537): com.apple.backupd-auto (0xb671bcc80)
38.879 DAS STARTING <_DASActivity: "0:com.apple.backupd-auto:2052A3", Utility, 60s, [1/19/26, 8:50:43 PM - 1/19/26, 9:10:43 PM], Started at 1/19/26, 9:10:38 PM, Group: com.apple.dasd.default, PID: 537>

Однако это происходит в виртуальной машине с отключенным Time Machine, поэтому Time Machine сообщает:
38.879 Time Machine Skipping scheduled Time Machine backup: Automatic backups disabled

Однако com.apple.backupd-auto теперь завершен, и это передается обратно через CTS-XPC:
38.879 CTS-XPC _xpc_activity_set_state: send new state to CTS: com.apple.backupd-auto (0x7a9014280), 5
38.880 CTS-XPC Completed: com.apple.backupd-auto (0xb671bcc80)

Следующий запуск затем планируется в DAS с интервалом не менее 30 минут и в идеале примерно через час:
38.881 CTS-XPC Rescheduling: com.apple.backupd-auto (0xb671bcc80)
38.881 DAS SUBMITTING: 0:com.apple.backupd-auto:B293AE
38.882 DAS Submitted: 0:com.apple.backupd-auto:B293AE at priority 30 with interval 1800 (Mon Jan 19 21:25:38 2026 - Mon Jan 19 21:40:43 2026)

Таким образом, даже с отключенным Time Machine в виртуальной машине DAS-CTS продолжает планировать автоматические запуски Time Machine с часовыми интервалами. И, поскольку DAS-CTS изолирован от всех пользовательских элементов управления, мы ничего не можем сделать, чтобы предотвратить это планирование и отправку. Но имеет ли это значение? Вся эта последовательность была завершена за 0,144 секунды с использованием облегченного межпроцессного взаимодействия с незначительным использованием ресурсов и повторяется только ежечасно.

Для пуриста Unix это может показаться расточительным и ненужным, но macOS не является и никогда не была Unix. Это проприетарная операционная система с закрытым исходным кодом, предназначенная для использования миллионами потребителей и обычных пользователей. Вместо того, чтобы настраивать ее с помощью конфигурационных файлов или тысяч списков свойств, ее элементы управления в основном доступны в «Системных настройках», а некоторые настройки скрыты и доступны только через команду defaults.

через командную defaultsстроку

Classic Mac OS была более модульной, с дополнительными установками, которые пользователь мог выбирать, как показано выше в Mac OS 9.1. В наши дни с SSV выбор с самого начала более ограничен, и единственными реальными вариантами являются установка криптексов, используемых в искусственном интеллекте, и транслятора кода x86 Rosetta 2. Последний, однако, является временным и, вероятно, исчезнет в следующем году.

Нравится вам это или нет, но современная macOS не спроектирована и не реализована так, чтобы предоставлять пользователю большой выбор в том, какие процессы она запускает, а архитектурные особенности, включая SSV и DAS-CTS, в значительной степени не позволяют вам сократить количество ее процессов.

Источник
eclecticlight.co

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

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

Кнопка «Наверх»