Что такое процесс «lsd» в OS X и почему он использует так много ресурсов процессора?

30

Я заглянул в меню iStat и заметил, что названный процесс lsdпотребляет 99% моего процессора (из 400% для 4 ядер). Я немного искал, но не мог понять, что это такое и почему он использует так много вычислительной мощности. Это не Little Snitch Daemon, так как я никогда этого не устанавливал. Кто-то еще сказал, что это может быть демон запуска служб, но я подумал, что это процесс launchd. Это демон запуска сервисов.

Посмотрев в консоль, я замечаю эти сообщения при поиске lsd:

22/12/2015 9:36:02.000 a.m. kernel[0]: Sandbox: AssetCacheLocato(400) deny(1) mach-lookup com.apple.lsd.mapdb
22/12/2015 9:36:02.931 a.m. AssetCacheLocatorService[400]: LaunchServices: disconnect event received for service com.apple.lsd.mapdb
22/12/2015 9:36:02.000 a.m. kernel[0]: Sandbox: AssetCacheLocato(400) deny(1) mach-lookup com.apple.lsd.mapdb
22/12/2015 9:36:02.932 a.m. AssetCacheLocatorService[400]: LaunchServices: disconnect event received for service com.apple.lsd.mapdb
22/12/2015 9:36:03.000 a.m. kernel[0]: Sandbox: AssetCacheLocato(400) deny(1) mach-lookup com.apple.lsd.modifydb
22/12/2015 9:36:03.657 a.m. AssetCacheLocatorService[400]: LaunchServices: disconnect event received for service com.apple.lsd.modifydb
22/12/2015 9:39:41.000 a.m. kernel[0]: Sandbox: SpotlightNetHelp(376) deny(1) mach-lookup com.apple.lsd.mapdb
22/12/2015 9:39:41.995 a.m. SpotlightNetHelper[376]: LaunchServices: disconnect event received for service com.apple.lsd.mapdb
22/12/2015 9:39:41.000 a.m. kernel[0]: Sandbox: SpotlightNetHelp(376) deny(1) mach-lookup com.apple.lsd.mapdb
22/12/2015 9:39:41.996 a.m. SpotlightNetHelper[376]: LaunchServices: disconnect event received for service com.apple.lsd.mapdb
22/12/2015 9:39:42.000 a.m. kernel[0]: Sandbox: SpotlightNetHelp(376) deny(1) mach-lookup com.apple.lsd.modifydb
22/12/2015 9:39:42.370 a.m. SpotlightNetHelper[376]: LaunchServices: disconnect event received for service com.apple.lsd.modifydb
22/12/2015 9:39:58.100 a.m. lsd[296]: LaunchServices: Could not store lsd-identifiers file at /private/var/db/lsd/com.apple.lsdschemes.plist
22/12/2015 10:01:15.000 a.m. kernel[0]: process lsd[237] thread 19967 caught burning CPU!; EXC_RESOURCE supressed due to audio playback
22/12/2015 3:34:04.828 p.m. lsd[296]: LaunchServices: Could not store lsd-identifiers file at /private/var/db/lsd/com.apple.lsdschemes.plist
22/12/2015 3:44:07.469 p.m. sudo[45308]:     MyUsername : TTY=ttys000 ; PWD=/private/var/db ; USER=root ; COMMAND=/bin/mkdir lsd
22/12/2015 3:49:09.183 p.m. lsd[306]: LaunchServices: Scheme mapping file does not exist, creating file.
22/12/2015 3:49:09.400 p.m. lsd[306]: LaunchServices: Could not store lsd-identifiers file at /private/var/db/lsd/com.apple.lsdschemes.plist
22/12/2015 3:49:09.407 p.m. lsd[306]: LaunchServices: Could not store lsd-identifiers file at /private/var/db/lsd/com.apple.lsdschemes.plist
22/12/2015 3:49:39.366 p.m. lsd[306]: LaunchServices: Currently 0 installed placeholders: ()
22/12/2015 3:49:50.000 p.m. kernel[0]: Sandbox: AssetCacheLocato(535) deny(1) mach-lookup com.apple.lsd.mapdb
22/12/2015 3:49:50.802 p.m. AssetCacheLocatorService[535]: LaunchServices: disconnect event received for service com.apple.lsd.mapdb
22/12/2015 3:49:51.000 p.m. kernel[0]: Sandbox: AssetCacheLocato(535) deny(1) mach-lookup com.apple.lsd.modifydb
22/12/2015 3:49:51.002 p.m. AssetCacheLocatorService[535]: LaunchServices: disconnect event received for service com.apple.lsd.modifydb
22/12/2015 4:31:57.573 p.m. lsd[306]: LaunchServices: Could not store lsd-identifiers file at /private/var/db/lsd/com.apple.lsdschemes.plist
22/12/2015 4:34:34.075 p.m. lsd[306]: LaunchServices: Could not store lsd-identifiers file at /private/var/db/lsd/com.apple.lsdschemes.plist
22/12/2015 4:34:34.290 p.m. lsd[306]: LaunchServices: Could not store lsd-identifiers file at /private/var/db/lsd/com.apple.lsdschemes.plist
22/12/2015 4:37:20.000 p.m. kernel[0]: process lsd[220] thread 26462 caught burning CPU!; EXC_RESOURCE supressed due to audio playback

Что касается этого сообщения:

22/12/2015 3:44:07.469 p.m. sudo[45308]:     MyUsername : TTY=ttys000 ; PWD=/private/var/db ; USER=root ; COMMAND=/bin/mkdir lsd

Я попытался сделать dir под /private/var/db/lsdназванием root.

Кроме того, мое использование процессора кажется очень прерывистым (чего раньше никогда не было).

Прерывистое использование процессора

Заглядывая /usr/libexec, я обнаружил lsdи заметил, что он был создан 17 сентября 2015 года. Почему он такой новый (наряду со всем остальным в этом каталоге)?

CraftedCart
источник
3
Пожалуйста, не обновляйте вопрос ответом, вместо этого опубликуйте ответ ниже. В противном случае и функция поиска, и пользователи будут сбиты с толку.
Nohillside

Ответы:

21

lsd в OS X - это действительно LaunchServiceDaemon. launchd - это менеджер демонов запуска! Это обеспечивает, вероятно, ту же функцию, что и в iOS. По словам Apple, это обеспечивает

поддержка запуска приложений и сопоставления типов документов с приложениями. В результате ключи, распознаваемые Launch Services, позволяют вам указать желаемую среду выполнения для вашего связанного кода.

lsd был явно представлен в OS X 10.11 El Capitan, потому что я не могу найти его в старых системах. Последняя версия (включенная в 10.11.2) должна иметь модифицированную дату 3 декабря 2015 года.


Для устранения неполадок

  • в «LaunchServices: Не удалось сохранить LSD-идентификаторы файлов в /private/var/db/lsd/com.apple.lsdschemes.plist» проблемы проверить этот пост:

    Вероятно, не лучшим образом, но я, кажется, исправил / подавил это сообщение об ошибке. Вот что я сделал:

    cd /private/var/db

    Каталог lsd не существует

    mkdir lsd

    Все еще нет радости

    chmod -R 777 /private/var/db/lsd
    (Я знаю, я только что открыл свой гибсон для взлома)
    touch /private/var/db/lsd/com.apple.lsdschemes.plist

    Казалось, уйти после этого. Готов поставить ставку на восстановление диска / проверку прав доступа снова сломает его, но не пытался. Если я присваиваю этот файл следующему содержимому:

    bplist00?

  • 100% CPU-использование: / USR / libexec / LSD с использованием 100% процессора

klanomath
источник
Ах, спасибо за разъяснение этого (и я все еще на 10.11.1), я все еще понятия не имею, почему это требует такой большой мощности ЦП, хотя ...
CraftedCart
Думаю, что после долгих копаний я обнаружил, что приложение вызывает 100% проблему. Robocraft. Давайте посмотрим, работает ли обновление, и если нет, мне придется удалить его.
CraftedCart
У меня есть исправно работающий lsdкаталог и не /private/var/db/lsdсуществует - возможно, это красная сельдь из систем старше 10.11? Он все еще выполняет много операций записи на диск по причинам, которые я не мог время от времени идентифицировать - возможно, это приводит к большому количеству ЦП для систем с вращающимися жесткими дисками и / или больших файловых систем со значительными хранилищами данных?
bmike
5

Похоже, что lsdзастревает на _LSCreateRegistrationData для определенного приложения. Если у вас возникла та же проблема, следуйте инструкциям ниже.

  1. Откройте монитор активности и найдите lsd
  2. Получить PID lsdпринадлежащего rootпользователю
  3. Откройте терминал
  4. Введите sudo sample PID-HERE(конечно, заменив PID-HERE на PID, полученный на шаге 2)
  5. Если у вас возникла та же проблема, _LSCreateRegistrationDataв графе вызовов должно быть что-то около (около верха всего вывода)
  6. Войти sudo lsof -p PID-HERE

Вы должны быть в состоянии распознать пакет приложения в этом выводе. Попробуйте удалить или обновить его и посмотреть, решит ли он проблему

CraftedCart
источник
2

Я тоже обнаружил, что у меня были проблемы с lsd. Кажется, что этого достаточно, чтобы создать каталог и прикоснуться к файлу, (по крайней мере, в моем случае) не было необходимости возиться с разрешениями, как описано в klanomath.

В моем случае это остановило ошибки lsd, но я все еще видел частые ошибки, подобные этим:

25 февраля 14:06:07 iMac system_profiler [259]: LaunchServices: сбой сопоставления базы данных с результатом -10822, повторная попытка

25 февраля 14:06:07 iMac system_profiler [259]: LaunchServices: получено XPC_ERROR_CONNECTION_INTERRUPTED при попытке отобразить базу данных

25 февраля 14:06:07 iMac com.apple.xpc.launchd [1] (com.nomachine.nxserver): служба работала только 7 секунд. Оттолкнуть респауна на 3 секунды.

У меня была установлена ​​NoMachine, и я удалил ее (поскольку я все равно действительно использовал nxplayer), эта ошибка также прекратилась.

Кристиан Линбек
источник
1

Для меня работал процессор "sudo xcrun xcscontrol --reset" с пульсирующих 95% до примерно 4%.

Juddimaster
источник
Выдает сообщение об ошибке: xcrun: ошибка: не удается найти утилиту "xcscontrol", а не инструмент разработчика или в PATH
user26732
0

Это часть LaunchServices. Вы можете извлечь из него некоторую информацию (строки) с помощью команды strings:

hostname:~ username$ strings /usr/libexec/lsd
@(#)PROGRAM:lsd  PROJECT:LaunchServices-
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleAllowMixedLocalizations</key>
<true/>
</dict>
</plist>

Кроме этого, кажется, что ваша проблема также обсуждается здесь .

watkipet
источник