O que é o processo "lsd" no OS X e por que ele usa tanto poder da CPU?

30

Procurei nos menus do iStat e notei que um processo chamado lsdconsumia 99% da minha CPU (de 400% para 4 núcleos). Procurei um pouco, mas não consegui descobrir o que era e por que está usando tanto poder de processamento. Não é o Little Snitch Daemon, pois nunca o instalei. Alguém disse que poderia ser o Launch Services Daemon, mas eu pensei que era esse processo launchd. É o Launch Services Daemon.

Ao procurar no console, noto estas mensagens ao procurar 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

Quanto a esta mensagem:

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

Eu tentei fazer um dir chamado /private/var/db/lsdcomo root.

Além disso, o uso da minha CPU parece ser muito intermitente (o que nunca aconteceu antes).

Uso intermitente da CPU

Examinando /usr/libexec, descobri lsde notei que ele foi criado em 17 de setembro de 2015. Por que é tão novo (além de tudo o mais nesse diretório)?

CraftedCart
fonte
3
Não atualize a pergunta com a resposta, poste uma resposta abaixo. Caso contrário, a função de pesquisa e os usuários ficarão confusos.
nohillside

Respostas:

21

O lsd no OS X é realmente o LaunchServiceDaemon. launchd é um gerenciador de daemon de lançamento! Ele provavelmente fornece a mesma função que no iOS. Segundo a Apple, ela fornece

suporte para iniciar aplicativos e combinar tipos de documentos com aplicativos. Como resultado, as chaves reconhecidas pelo Launch Services permitem especificar o ambiente de execução desejado para o seu código em pacote.

Aparentemente, o lsd foi introduzido no OS X 10.11 El Capitan porque não consigo encontrá-lo em sistemas mais antigos. A versão mais recente (incluída no 10.11.2) deve ter a data de modificação em 3 de dezembro de 2015.


Para solucionar problemas

  • o problema "LaunchServices: Não foi possível armazenar o arquivo lsd-identifiers em /private/var/db/lsd/com.apple.lsdschemes.plist", verifique este post:

    Provavelmente não é o melhor caminho, mas parece que corrigi / suprimi essa mensagem de erro. Isto é o que eu fiz:

    cd /private/var/db

    O diretório lsd não existia

    mkdir lsd

    Ainda sem alegria

    chmod -R 777 /private/var/db/lsd
    (eu sei, acabei de abrir meu Gibson para ser hackeado)
    touch /private/var/db/lsd/com.apple.lsdschemes.plist

    Parecia ir embora depois disso. Dispostos a apostar em uma verificação de reparo / permissões de disco, a quebrará novamente, mas ainda não tentou. Se eu criar esse arquivo, o seguinte é o conteúdo:

    bplist00?

  • 100% de uso da CPU: / usr / libexec / lsd usando 100% da CPU

Klanomath
fonte
Ah, obrigado por esclarecer isso (e eu ainda estou em 10.11.1) Eu ainda não tenho idéia por que tanto precisam de energia da CPU embora ...
CraftedCart
Depois de muita pesquisa, acho que encontrei o aplicativo causando o problema de 100%. Robocraft. Vamos ver se a atualização funciona e, se não, terei que desinstalá-lo.
CraftedCart
Eu tenho um lsddiretório funcionando corretamente e nenhum diretório /private/var/db/lsdexiste - talvez seja um arenque vermelho de sistemas com mais de 10.11? Ele ainda cria muita gravação de disco por razões que não consegui identificar de tempos em tempos - talvez isso se traduza em muita CPU para sistemas com discos rígidos giratórios e / ou grandes sistemas de arquivos com armazenamento de dados significativo?
bmike
5

Parece que lsdfica preso em _LSCreateRegistrationData para um determinado aplicativo. Se você está tendo o mesmo problema, siga o guia abaixo.

  1. Abra o monitor de atividades e procure por lsd
  2. Obter o PID da lsdpropriedade do rootusuário
  3. Abra o terminal
  4. Digite sudo sample PID-HERE(é claro, substituindo o PID-HERE pelo PID que você obteve na etapa 2)
  5. Se você está tendo o mesmo problema, deve haver algo _LSCreateRegistrationDatano gráfico de chamadas (próximo à parte superior de toda a saída)
  6. Entrar sudo lsof -p PID-HERE

Você deve reconhecer um pacote de aplicativos nessa saída. Tente excluí-lo ou atualizá-lo e veja se ele resolve o problema

CraftedCart
fonte
2

Eu também descobri que tinha problemas com o lsd. Parece que é suficiente criar o diretório e tocar no arquivo; não havia (pelo menos no meu caso) a necessidade de mexer nas permissões, conforme descrito por klanomath.

No meu caso, ele parou os erros lsd, mas eu ainda estava vendo erros frequentes como estes:

25 de fevereiro 14:06:07 iMac system_profiler [259]: LaunchServices: O mapeamento do banco de dados falhou com o resultado -10822, repetindo

25 de fevereiro 14:06:07 iMac system_profiler [259]: LaunchServices: XPC_ERROR_CONNECTION_INTERRUPTED recebido tentando mapear o banco de dados

25 de fevereiro 14:06:07 iMac com.apple.xpc.launchd [1] (com.nomachine.nxserver): o serviço foi executado apenas por 7 segundos. Empurrando o respawn por 3 segundos.

Eu tinha uma instalação do NoMachine e excluí-lo (como eu realmente nunca usei o nxplayer de qualquer maneira), esse erro também foi interrompido.

Christian Lynbech
fonte
1

O que funcionou para mim foi a CPU "sudo xcrun xcscontrol --reset", que passou de 95% para 4%.

Juddimaster
fonte
Lança uma mensagem de erro: xcrun: erro: não foi possível encontrar utilidade "xcscontrol", e não uma ferramenta de desenvolvimento ou em PATH
user26732
0

Faz parte do LaunchServices. Você pode extrair algumas informações (strings) com o comando 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>

Fora isso, parece que seu problema também está sendo discutido aqui .

watkipet
fonte