com.apple.launchd: erreur com.apple.launchd.peruser

13

Cela fait quelques jours que je lis ces erreurs dans le fichier journal système.

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

J'ai OSX Lion 10.7.2.
Ces messages vont et viennent toutes les quelques secondes, j'ai goggled getpwuid () et cela semble être un appel système.
J'ai également lu des messages de superutilisateur sur ce problème:
/superuser//search?q=com.apple.launchd.peruser
mais l'exécution des commandes signalées dans la console ne m'a pas donné d'indication sur la façon de résoudre ce problème .

J'ai retracé la première apparition de cette erreur jusqu'au 20 novembre, voici les lignes précédentes du fichier 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    

Après cela, il y a (vraiment) des tonnes de messages de ce genre.

Quelqu'un a-t-il un indice?

nick2k3
la source
Avez-vous récemment supprimé un compte utilisateur de votre machine? Que se passe-t-il lorsque vous ouvrez un terminal et entrez touch foo ; sudo chown 32697 foo ; ls -l foo?
Daniel Beck
Quelle est la sortie de sudo launchctl bstree -j, contient-elle une ligne avec com.apple.launchd.peruser.32697? Quels sont les éléments enfants?
Daniel Beck
la sortie de touch foo; sudo chown 32697 foo; ls -l foo est: touch: foo: autorisation refusée puis: -rw-r - r-- 1 32697 staff 0 26 nov 11:55 foo
nick2k3
OK, de sorte que l'ID utilisateur n'existe pas sur votre système. launchctlserait intéressant cependant.
Daniel Beck

Réponses:

10

Par utilisateur launchd remplacements de travaux (par exemple, quels travaux par utilisateur sont désactivés pour un utilisateur) sont situés dans les sous-répertoires de /private/var/db/launchd.db/, par exemple com.apple.launchd.peruser.501.

Ouvrez Terminal et voyez à qui appartient ce répertoire:

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

Si le propriétaire (troisième colonne) n'est pas un nom d'utilisateur, mais un ID numérique, cet utilisateur n'existe plus (plus) sur votre système.

Vous pouvez simplement supprimer ce répertoire et en finir avec lui. S'il existe des règles spéciales dans leoverrides.plist , cela peut vous aider à comprendre l'origine de cet utilisateur et les travaux launchd.


Pour savoir quand ce launchdrépertoire par utilisateur a été créé, entrez

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

C'est la dernière (quatrième) date imprimée.


Pour rechercher tous les fichiers de votre système n'appartenant pas à un utilisateur connu, entrez

find / -nouser -ls

Si 32697vous n'êtes pas un utilisateur sur votre système (pas de nom d'utilisateur), cela pourrait vous donner des informations (par exemple, les fichiers liés à une application particulière que vous avez installée pourraient signifier que l'application a gâché vos paramètres utilisateur)

Daniel Beck
la source
"Les remplacements de travaux launchd par utilisateur (par exemple, quels travaux par utilisateur sont désactivés pour un utilisateur) sont situés dans les sous-répertoires de /private/var/db/launchd.db/, par exemple com.apple.launchd.peruser.501." pouvez-vous expliquer cela? toute documentation sur les remplacements de travaux lancés?
nick2k3
@nick From man launchctl: -w Remplace la clé Disabled et la définit sur false. Dans les versions précédentes, cette option modifierait le fichier de configuration. Maintenant, l'état de la clé désactivée est stocké ailleurs sur le disque. . /.../launchd.dbest "ailleurs". Si vous forcez le chargement / déchargement d'un travail par utilisateur, cela ne modifie pas le fichier utilisé par tous les comptes (ce serait un peu stupide d'imposer vos préférences aux autres sur un système multi-utilisateur). Et ce répertoire est l'endroit où ils sont stockés à la place, mais uniquement s'il est personnalisé (par exemple, l'exécution d'un travail désactivé par défaut ou vice versa). Ce n'est pas vraiment une préférence vitale.
Daniel Beck
Ok, merci beaucoup pour votre explication!
nick2k3
6
En plus de supprimer le répertoire, vous aurez envie de tuer le travail 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
Merci Doug, la dernière série de trois commandes empêche cette commande de s'exécuter constamment.
ConstantineK