com.apple.launchd: erro com.apple.launchd.peruser


13

Faz alguns dias que estou lendo esses erros no arquivo de log do sistema.

25/11/11 21:31:43,373 com.apple.launchd: (com.apple.launchd.peruser.32697[92747]) getpwuid("32697") failed
25/11/11 21:31:43,374 com.apple.launchd: (com.apple.launchd.peruser.32697[92747]) Exited with code: 1
25/11/11 21:31:43,374 com.apple.launchd: (com.apple.launchd.peruser.32697) Throttling respawn: Will start in 10 seconds

Eu tenho o OSX Lion 10.7.2.
Essas mensagens são repetidas a cada poucos segundos, eu goggled getpwuid () e parece ser uma chamada de sistema.
Também li algumas postagens de superusuário sobre esse problema:
/superuser//search?q=com.apple.launchd.peruser,
mas a execução dos comandos relatados no console não me deu nenhuma dica sobre como resolver esse problema .

Rastreei a primeira aparição desse erro até 20 de novembro. Aqui estão as linhas anteriores do arquivo system.log:

Nov 20 17:22:10 MacBook-Pro com.apple.backupd[45360]: Deleted /Volumes/Time Machine/Backups.backupdb/MacBook Pro/2011-11-18-215307 (64.9 MB)
Nov 20 17:22:26 MacBook-Pro com.apple.backupd[45360]: Deleted /Volumes/Time Machine/Backups.backupdb/MacBook Pro/2011-11-18-205448 (88.3 MB)
Nov 20 17:22:26 MacBook-Pro com.apple.backupd[45360]: Post-back up thinning complete: 5 expired backups removed
Nov 20 17:22:28 MacBook-Pro com.apple.backupd[45360]: Backup completed successfully.
Nov 20 17:23:47 MacBook-Pro iCal[45376]: ServerNotifications: Setting delegate to APSD
Nov 20 17:23:47 MacBook-Pro iCal[45376]: ServerNotification: configureService called with nil password
Nov 20 17:23:55 MacBook-Pro iCal[45376]: Subscription request completed
Nov 20 17:28:47 MacBook-Pro com.apple.launchd[1] (com.apple.launchd.peruser.32697[45390]): getpwuid("32697") failed
Nov 20 17:28:47 MacBook-Pro com.apple.launchd[1] (com.apple.launchd.peruser.32697[45390]): Exited with code: 1
Nov 20 17:28:47 MacBook-Pro com.apple.launchd[1] (com.apple.launchd.peruser.32697): Throttling respawn: Will start in 10 seconds    

Depois disso, existem (realmente) toneladas de mensagens desse tipo.

Alguém tem alguma dica?


Você excluiu recentemente uma conta de usuário da sua máquina? O que acontece quando você abre o terminal e entra touch foo ; sudo chown 32697 foo ; ls -l foo?
Daniel Beck


Qual é a saída de sudo launchctl bstree -j, contém uma linha com.apple.launchd.peruser.32697? Quais são os elementos filhos?
Daniel Beck

a saída de touch foo; sudo chown 32697 foo; ls -l foo é: touch: foo: permissão negada e, em seguida: -rw-r - r-- 1 32697 staff 0 26 Nov 11:55 foo
nick2k3

OK, para que o ID do usuário não exista no seu sistema. launchctlseria interessante embora.
Daniel Beck

Respostas:


10

As launchdsubstituições de tarefas por usuário (por exemplo, quais tarefas por usuário estão desabilitadas para um usuário) estão localizadas em subdiretórios de /private/var/db/launchd.db/, por exemplo com.apple.launchd.peruser.501.

Abra o Terminal e veja quem possui este diretório:

ls -ld /private/var/db/launchd.db/com.apple.launchd.peruser.32697

Se o proprietário (terceira coluna) não for um nome de usuário, mas um ID numérico, esse usuário não existe (mais) no seu sistema.

Você pode simplesmente remover esse diretório e terminar com ele. Se houver regras especiais no overrides.plist, isso poderá ajudá-lo a entender a origem desse usuário e os trabalhos launchd.


Para descobrir quando esse launchddiretório por usuário foi criado, digite

stat /private/var/db/launchd.db/com.apple.launchd.peruser.32697

É a última (quarta) data impressa.


Para encontrar todos os arquivos em seu sistema que não pertencem a um usuário conhecido, digite

find / -nouser -ls

Se 32697não for um usuário no seu sistema (sem nome de usuário), isso poderá fornecer algumas informações (por exemplo, arquivos relacionados a um aplicativo específico que você instalou podem significar que o aplicativo interferiu nas configurações do usuário)


"As substituições de tarefas iniciadas por usuário (por exemplo, quais tarefas por usuário estão desabilitadas para um usuário) estão localizadas nos subdiretórios de /private/var/db/launchd.db/, por exemplo, com.apple.launchd.peruser.501." você pode explicar isso? alguma documentação sobre substituições de tarefas iniciadas?
nick2k3

@nick From man launchctl: -w Substitui a chave Disabled e a define como false. Nas versões anteriores, essa opção modifica o arquivo de configuração. Agora, o estado da chave Desativado é armazenado em outro local do disco. . /.../launchd.dbestá "em outro lugar". Se você forçar a carga / descarga de uma tarefa por usuário, ela não modificará o arquivo usado por todas as contas (seria meio estúpido impor suas preferências a outras pessoas em um sistema multiusuário). E esse diretório é onde eles são armazenados, mas apenas se forem personalizados (por exemplo, executar um desativado por trabalho padrão ou vice-versa). Não é realmente uma preferência vital.
Daniel Beck

Ok, muito obrigado pela sua explicação!
nick2k3

6
Além de remover o diretório, você quer matar o trabalho de launchd - sudo launchctl stop com.apple.launchd.peruser.32697, sudo launchctl unload com.apple.launchd.peruser.32697,sudo launchctl remove com.apple.launchd.peruser.32697
Doug Harris

Obrigado Doug, o último conjunto de três comandos impede que esse comando seja executado constantemente.
ConstantineK
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.