Quel est le processus «lsd» sur OS X, et pourquoi utilise-t-il autant de puissance CPU?

30

J'ai regardé dans les menus iStat et j'ai remarqué qu'un processus nommé lsdconsommait 99% de mon processeur (sur 400% pour 4 cœurs). J'ai cherché un peu, mais je n'ai pas trouvé ce que c'était et pourquoi il utilise autant de puissance de traitement. Ce n'est pas Little Snitch Daemon, car je ne l'ai jamais installé. Quelqu'un d'autre a dit qu'il pourrait s'agir du démon Launch Services, mais je pensais que c'était le cas launchd. C'est Launch Services Daemon.

En regardant dans la console, je remarque ces messages lors de la recherche 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

Quant à ce message:

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

J'ai essayé de faire un dir appelé /private/var/db/lsdroot.

De plus, mon utilisation du processeur semble être très intermittente (ce qu'elle n'a jamais fait auparavant).

Utilisation CPU intermittente

En y regardant /usr/libexec, j'ai trouvé lsdet remarqué qu'il a été créé le 17 septembre 2015. Pourquoi est-il si nouveau (avec tout le reste dans ce répertoire)?

CraftedCart
la source
3
Veuillez ne pas mettre à jour la question avec la réponse, postez une réponse ci-dessous à la place. Sinon, la fonction de recherche et les utilisateurs seront confondus.
nohillside

Réponses:

21

lsd dans OS X est en effet le LaunchServiceDaemon. launchd est un gestionnaire de démon de lancement! Il fournit probablement la même fonction que dans iOS. Selon Apple, il fournit

prise en charge du lancement d'applications et de la mise en correspondance des types de documents avec les applications. Par conséquent, les clés reconnues par Launch Services vous permettent de spécifier l'environnement d'exécution souhaité pour votre code groupé.

lsd a apparemment été introduit dans OS X 10.11 El Capitan car je ne le trouve pas dans les anciens systèmes. La dernière version (incluse dans 10.11.2) devrait avoir la date de modification le 3 décembre 2015.


Pour dépanner

  • le problème "LaunchServices: Impossible de stocker le fichier lsd-identifiers dans /private/var/db/lsd/com.apple.lsdschemes.plist" , vérifiez cette publication:

    Probablement pas la meilleure façon, mais je semble avoir corrigé / supprimé ce message d'erreur. C'est ce que j'ai fait:

    cd /private/var/db

    le répertoire lsd n'existait pas

    mkdir lsd

    Toujours pas de joie

    chmod -R 777 /private/var/db/lsd
    (Je sais, je viens d'ouvrir mon gibson au piratage)
    touch /private/var/db/lsd/com.apple.lsdschemes.plist

    Semblait s'en aller après cela. Le fait de vouloir parier une vérification des autorisations / réparation de disque va le casser à nouveau, mais je n'ai pas essayé. Si je cat ce fichier, le contenu est le suivant:

    bplist00?

  • l'utilisation 100% CPU: / usr / libexec / lsd utilisant 100% CPU

klanomath
la source
Ah, merci d'avoir clarifié cela (et je suis toujours sur 10.11.1) Je n'ai toujours aucune idée pourquoi il a besoin de tant de puissance CPU ...
CraftedCart
Après beaucoup de recherches, je pense que j'ai peut-être trouvé l'application à l'origine du problème à 100%. Robocraft. Permet de voir si la mise à jour fonctionne, et sinon, je devrai la désinstaller.
CraftedCart
J'ai un bon fonctionnement lsdet aucun répertoire /private/var/db/lsdexistant - peut-être que c'est un hareng rouge des systèmes qui sont plus anciens que 10.11? Il fait encore beaucoup d'écriture sur le disque pour des raisons que je n'ai pas pu identifier de temps en temps - peut-être que cela se traduit par beaucoup de CPU pour les systèmes avec des disques durs en rotation et / ou des systèmes de fichiers volumineux avec des magasins de données importants?
bmike
5

Il semble que lsdse bloque sur _LSCreateRegistrationData pour une certaine application. Si vous rencontrez le même problème, suivez le guide ci-dessous.

  1. Ouvrez le moniteur d'activité et recherchez lsd
  2. Obtenez le PID de la lsdpropriété de l' rootutilisateur
  3. Ouvrez le terminal
  4. Entrez sudo sample PID-HERE(Bien sûr, en remplaçant PID-ICI par le PID que vous avez obtenu à l'étape 2)
  5. Si vous rencontrez le même problème, il devrait y avoir quelque chose _LSCreateRegistrationDatadans le graphique d'appel (près du haut de la sortie entière)
  6. Entrer sudo lsof -p PID-HERE

Vous devriez pouvoir reconnaître un package d'application dans cette sortie. Essayez de le supprimer ou de le mettre à jour et voyez s'il résout le problème

CraftedCart
la source
2

Moi aussi, j'ai découvert que j'avais des problèmes avec lsd. Il semble qu'il suffit de créer le répertoire et de toucher le fichier, il n'y avait (au moins dans mon cas) pas besoin de tripoter les autorisations décrites par klanomath.

Dans mon cas, cela a arrêté les erreurs lsd, mais je voyais toujours des erreurs fréquentes comme celles-ci:

25 février 14:06:07 iMac system_profiler [259]: LaunchServices: le mappage de la base de données a échoué avec le résultat -10822, nouvelle tentative

25 février 14:06:07 iMac system_profiler [259]: LaunchServices: reçu XPC_ERROR_CONNECTION_INTERRUPTED essayant de mapper la base de données

25 février 14:06:07 iMac com.apple.xpc.launchd [1] (com.nomachine.nxserver): le service n'a fonctionné que pendant 7 secondes. Pousser la réapparition de 3 secondes.

J'ai eu une installation de NoMachine et en supprimant cela (puisque je n'ai jamais vraiment utilisé le nxplayer de toute façon), cette erreur s'est également arrêtée.

Christian Lynbech
la source
1

Ce qui a fonctionné pour moi, c'est que le processeur "sudo xcrun xcscontrol --reset" est passé de 95% à environ 4%.

Juddimaster
la source
Lance un message d'erreur: xcrun: erreur: impossible de trouver l'utilitaire "xcscontrol", pas un outil de développeur ou dans PATH
user26732
0

Cela fait partie de LaunchServices. Vous pouvez en extraire des informations (chaînes) avec la commande 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>

En dehors de cela, il semble que votre problème soit également discuté ici .

watkipet
la source