O que é o processo "secd"?

19

Gostaria de saber o que o secdprocesso faz no OSX Yosemite. Tenho certeza de que vi esse processo em execução nas versões anteriores do MacOS, mas não me lembro de ter consumido toda a memória disponível com tanta ousadia ...

Eu tenho três computadores executando o Yosemite, cada um com uma configuração diferente. Todos os três permanecem acordados por um período de três dias a uma semana. Aqui está um resumo do que secdfoi alcançado:

  • No MacBookAir 2011 com 4 GB de memória, 700 MB alocados para secd
  • No iMac 2008, com 6 GB de memória, 2 GB alocados para secd
  • No iMac 2011, com 12 GB de memória, 4 GB alocados para secd

Nos três computadores secd é o maior processo de memória (maior que kernel task) e suspeito que ele tenha um papel na desaceleração que experimentei recentemente com a chegada de Yosemite. Sei com certeza que o processo se expande na memória para tamanhos desordenados e libera memória quando preciso em outro lugar. O único problema é que não é tão rápido na liberação de memória e na maioria das vezes o desempenho sofre antes que o processo perceba que precisa recuar.

Minha pesquisa na web não chegou a uma conclusão sólida sobre qual é o processo e por que deveria ser tão grande. Acho que não sou o único a experimentar isso. Qualquer dica é apreciada.

Como sugerido abaixo, secdtem a ver com o Apple Keychain. Aqui estão os arquivos e portas que o processo mantém aberto quando ativo (no MacBookAir):

/
/usr/libexec/secd
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-shm
/usr/share/icu/icudt53l.dat
/usr/lib/dyld
/private/var/run/diagnosticd/dyld_shared_cache_x86_64
/dev/null
/dev/null
/dev/null
count=2, state=0x2
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-wal
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-shm
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-wal
/dev/random
/dev/random
/private/var/folders/z_/806bzc396cxgp4s0q17tpfwc0000gn/T/etilqs_y5BDgkbGkBV9ybF
/private/var/folders/z_/806bzc396cxgp4s0q17tpfwc0000gn/T/etilqs_Aw6Q7JhPlil3QNX
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-wal

O que não está claro é o que o processo faz com toda a memória que ocupa e por que ele infla tanto.

retrografia
fonte
2
Sua memória está certa. secdé executado no Mavericks. Em análises rápidas, esse daemon não está documentado, isso é ruim, pode ser um pedaço de porcaria. Este daemon está em /usr/libexec/secd.
dan
@danielAzuelos Mostra o mesmo comportamento cancerígeno no Mavericks?
retrography
2
Segundo o Plist, o secd é usado para gerenciar o keychain da nuvem e não o local.
Ruskes
2
Acabei de descobrir: Sem secdexecutar, o Messages sempre solicita uma senha.
interestinglythere
1
→ Mah: no Maveriskc, secdpossui um VSZ = 2,4 GB e um RSS = 3 MB. secdfuncionou por 84 s em um sistema em funcionamento há 5 dias.
dan

Respostas:

20

Se não for aparente, isso é apenas um palpite. Mas espero que isso lhe dê algumas pistas.

Primeiro, aqui está o que você pode descobrir apenas a partir do nome do programa. Se você executar o comando /bin/ls /usr/libexec | sort -f | egrep '.*d$'(isto imprimir todos os arquivos /usr/libexecterminando em d), você vai encontrar ftpd, hidd, networkd, systemstatsd, e um monte de programas que terminam em d. O "d" significa "daemon", que basicamente significa um processo auxiliar que sempre é executado em segundo plano. O secmuito provável significa "segurança". entãosecd acontece com o "daemon de segurança". O que faz sentido, porque você disse que parece que funciona com coisas de chaveiro.

Qual é o sentido dos daemons? Alguns daemons continuam em execução para executar alguma tarefa em andamento. hidd("daemon de dispositivo de interface humana"), por exemplo, é o processo responsável por manipular a entrada do mouse / teclado / trackpad. Alguns outros daemons realizam algumas tarefas comuns que muitos outros programas precisam. Os aplicativos podem simplesmente dizer ao daemon para fazer algo, em vez de ter código para fazer eles mesmos. Então secdprovavelmente faz algo assim, mas relacionado ao chaveiro.

Mas o que exatamente? Parece que ele realmente não lida com o uso normal do chaveiro, pois eu ainda era capaz de usá-lo depois de desativar o secdLaunchAgent.

A inspeção do LaunchAgent nos dá uma pista:

Parece que o secd é responsável por sincronizar o chaveiro com o iCloud?

Então o que você deveria fazer? Tente um ou mais destes procedimentos:

  1. Se você não precisar da sincronização de chaves do iCloud, desative-o nas preferências do iCloud.
  2. Use launchctlpara desativar o secd se ele não afetar adversamente nada.
  3. Se você precisar da sincronização de chaves do iCloud, verifique se possui vários itens de chaves e remova os que não precisa.
  4. Talvez reconstrua seu chaveiro (faça um novo chaveiro, mova os itens necessários e mova-o sobre o antigo), caso haja artefatos desnecessários restantes no chaveiro antigo.
Curiosamente
fonte
Este é um detalhe impressionante. A etapa 2 deve ter um asterisco - observe que você desabilitou isso, pois a Apple geralmente adiciona um novo recurso a ele e o seu Mac falha quando isso acontece. Lembre-se de ligá-lo novamente de vez em quando e revise a decisão de desativar um daemon do sistema.
Bmike
Novamente - resposta fantástica que explica como fazer engenharia reversa de qualquer daemon e não apenas este que não está bem documentado.
Bmike
5

O programa / usr / libexec / secd é enviado como parte do OS X e é um processo de segurança normal. A documentação diz que se refere a "políticas de segurança de tempo de execução para processos". Você pode inspecionar os processos associados a este comando:ps -ef|grep sec[iud]

No meu Mac, eu sou usuário 501, então você tem esta saída para um usuário conectado:

Mac:~ bmike$ ps -ef|grep sec[iud]
    0    58     1   0 Sat12PM ??         0:56.51 /usr/sbin/securityd -i
    0   117     1   0 Sat12PM ??         0:00.15 /usr/libexec/secinitd
    0   171     1   0 Sat12PM ??         0:02.24 /usr/libexec/securityd_service
  501   205     1   0 Sat12PM ??         0:11.74 /usr/libexec/secinitd
  501  2634     1   0 Tue08PM ??         0:08.26 /usr/libexec/secd

Você pode ver que securitydé iniciado como processo raiz (PID 58) e, em seguida, como usuário (PID 205) quando você secdefetua login. O real realiza o "trabalho" e pode ser reaparecido mesmo quando você não efetua logout e logon. Como para decifrar por que o seu está usando recursos extras, será bastante difícil sem se aprofundarfsusage outros comandos para espiar os processos em execução e também examinar os arquivos de log. Sua melhor aposta seria registrar um bug na Apple e, em seguida, documentar como você pode se comportar mal - especialmente se você pode reproduzi-lo após uma reinicialização.

Atualmente, não existe uma "página de manual" para secde a página para secinitdé escassa na melhor das hipóteses. O preenchimento de erros de documentação contra a Apple é uma maneira de solicitar que a falta de documentação seja sanada.

bmike
fonte
3

Pelo que sei sobre esse processo (que realmente não é uma tonelada), é que ele tem algo a ver com o chaveiro do Mac. O que você pode fazer é encontrar no Monitor de Atividade e clicar em Cmd + I para obter informações sobre ele.

Uma dica que você pode tentar fazer é executar o Keychain First Aid, acessando o Keychain Access no Spotlight, abrindo o menu "Keychain Access" e selecionando a opção "Keychain First Aid" a partir daí e siga as instruções.

Espero que essa dica funcione!

jaller200
fonte
Keychain Os primeiros socorros dizem que meu keychain está bom! Nos três computadores.
retrography
Existe uma opção no El Capitan (pelo menos, também pode estar nas versões anteriores) em Acesso ao chaveiro - Preferências para redefinir meu Kechain padrão "Reverte aos padrões de fábrica e cria um novo chaveiro vazio" login ". Seu chaveiro padrão atual será ser movido para o lado, mas não excluído ". Assim que eu fiz isso, o securityd_service passou de 51-53% da CPU para 0-1.5%. Assim que você precisar, faça login novamente no iCloud - ainda não descobri outras ramificações.
Oskar Austegard
1
Acabei de fazer o upgrade do Mavericks para o Sierra e descobri que o segundo processador passou de quase 100% depois de redefinir o chaveiro, como você sugeriu. Perdi todas as senhas salvas no site, tive que fazer login novamente na sincronização da minha agenda etc., mas pelo menos posso usar o computador novamente. Obrigado.
Walter Nissen