Вы почти наверняка увидите, как 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
-измом)