Вы почти наверняка увидите, как launchd periodic daily , periodic weekly и periodic monthly рутинных работ по обслуживанию системы, которые выполняют такие действия, как просмотр журналов и удаление неиспользуемых временных файлов. Эти задания обычно выполняются в 3 часа утра, но если ваша машина в это время спала, то launchd запускает их при следующем пробуждении вашей машины.
Задание , которое, вероятно, работает дольше всего и замедляет работу системы с большим количеством дисковых операций ввода-вывода, - это еженедельное задание makewhatis (в субботу утром, в 3 часа ночи), которое обновляет базу данных имен файлов, используемую традиционной командой locate Unix (вроде как old- школа мдс / прожектор). Вы можете отключить это в /etc/defaults/periodic.conf , изменив строку
weekly_whatis_enable="YES"
в
weekly_whatis_enable="NO"
Если вы добавили или изменили большое количество файлов в вашей системе, при следующем makewhatis это может занять много времени. Если вы убиваете его каждый раз, и он никогда не завершается, то на следующей неделе ему придется начинать все сначала. Меня обычно не беспокоит makewhatis , хотя моя система не работает быстро, особенно мой диск. Единственный раз, когда я действительно замечаю это, когда я добавляю огромное количество файлов в свою систему, например, после проверки всего дерева исходных текстов операционной системы NetBSD.
Если makewhatis и другие periodic задания не являются всей вашей проблемой, имейте в виду, что launchd предоставляет службу отсрочки до следующего пробуждения для любого launchd задания, в котором используется ключ StartCalendarInterval . Вот способ быстро увидеть, какие запущенные задания в вашей системе используют этот ключ:
grep -r StartCalendarInterval {/System,,~}/Library/Launch{Daemons,Agents}/
(NB: Я думаю , что фигурные скобки в этом заявлении могут быть bash -измом)