com.apple.launchd: com.apple.launchd.peruser-Fehler

13

Es ist ein paar Tage her, dass ich diese Fehler in der Systemprotokolldatei lese.

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

Ich habe OSX Lion 10.7.2.
Diese Meldung wird alle paar Sekunden wiederholt. Ich habe getpwuid () gegoogelt und es scheint sich um einen Systemaufruf zu handeln.
Ich habe auch einige Superuser-Beiträge zu diesem Problem gelesen:
/superuser//search?q=com.apple.launchd.peruser,
aber das Ausführen der angegebenen Befehle in der Konsole gab mir keinen Hinweis auf die Behebung dieses Problems .

Ich habe das erste Auftreten dieses Fehlers bis zum 20. November zurückverfolgt. Hier sind die vorherigen Zeilen der Datei 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    

Danach gibt es (wirklich) Unmengen solcher Nachrichten.

Hat jemand einen Tipp?

nick2k3
quelle
Haben Sie kürzlich ein Benutzerkonto von Ihrem Computer gelöscht? Was passiert, wenn Sie das Terminal öffnen und eintreten touch foo ; sudo chown 32697 foo ; ls -l foo?
Daniel Beck
Was ist die Ausgabe von sudo launchctl bstree -j, enthält sie eine Zeile mit com.apple.launchd.peruser.32697? Was sind die untergeordneten Elemente?
Daniel Beck
die Ausgabe von touch foo; sudo chown 32697 foo; ls -l foo ist: touch: foo: Erlaubnis verweigert und dann: -rw-r - r-- 1 32697 staff 0 26 Nov 11:55 foo
nick2k3 26.11.11
OK, damit die Benutzer-ID auf Ihrem System nicht existiert. launchctlwäre aber interessant.
Daniel Beck

Antworten:

10

Jobüberschreibungen launchdpro Benutzer (z. B. welche Jobs pro Benutzer für einen Benutzer deaktiviert sind) befinden sich in Unterverzeichnissen von /private/var/db/launchd.db/z com.apple.launchd.peruser.501.

Öffnen Sie das Terminal und sehen Sie, wem dieses Verzeichnis gehört:

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

Wenn der Eigentümer (dritte Spalte) kein Benutzername, sondern eine numerische ID ist, existiert dieser Benutzer (nicht mehr) auf Ihrem System.

Sie können dieses Verzeichnis einfach entfernen und damit fertig sein. Wenn es in der spezielle Regeln gibt overrides.plist, hilft es Ihnen möglicherweise, die Herkunft dieses Benutzers und die gestarteten Jobs zu verstehen.


Geben Sie ein, um herauszufinden, wann dieses launchdBenutzerverzeichnis erstellt wurde

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

Es ist das letzte (vierte) Datum, das gedruckt wurde.


Geben Sie ein, um alle Dateien auf Ihrem System zu finden, die keinem bekannten Benutzer gehören

find / -nouser -ls

Wenn 32697sich kein Benutzer in Ihrem System befindet (kein Benutzername), werden möglicherweise einige Informationen angezeigt (z. B. können Dateien, die sich auf eine bestimmte von Ihnen installierte Anwendung beziehen, bedeuten, dass die Anwendung mit Ihren Benutzereinstellungen in Konflikt geraten ist).

Daniel Beck
quelle
"Benutzerdefinierte Jobüberschreibungen (z. B. welche Jobs pro Benutzer für einen Benutzer deaktiviert sind) befinden sich in den Unterverzeichnissen von /private/var/db/launchd.db/, z. B. com.apple.launchd.peruser.501." kannst du das erklären Gibt es eine Dokumentation zu gestarteten Jobüberschreibungen?
nick2k3
@nick From man launchctl: -w Überschreibt den deaktivierten Schlüssel und setzt ihn auf false. In früheren Versionen wurde mit dieser Option die Konfigurationsdatei geändert. Jetzt wird der Status des deaktivierten Schlüssels an einer anderen Stelle auf der Festplatte gespeichert. . /.../launchd.dbist "anderswo". Wenn Sie das Laden / Entladen eines Jobs pro Benutzer erzwingen, ändert dies nicht die von allen Konten verwendete Datei (es wäre ziemlich dumm, wenn Sie Ihre Einstellungen anderen auf einem System mit mehreren Benutzern auferlegen würden). Und in diesem Verzeichnis werden sie stattdessen gespeichert, aber nur, wenn sie angepasst wurden (z. B. Ausführen eines standardmäßig deaktivierten Jobs oder umgekehrt). Es ist nicht wirklich eine wichtige Präferenz.
Daniel Beck
Ok, vielen Dank für deine Erklärung!
nick2k3
6
Neben dem Verzeichnis zu entfernen, sollten Sie den Job von launchd töten - 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
Vielen Dank, Doug, die letzten drei Befehle verhindern, dass dieser Befehl ständig ausgeführt wird.
ConstantineK