com.apple.launchd: błąd com.apple.launchd.peruser

13

Od kilku dni czytam te błędy w pliku dziennika systemu.

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

Mam OSX Lion 10.7.2.
Te wiadomości pojawiają się w kółko co kilka sekund, sprawdziłem getpwuid () i wydaje się, że to wywołanie systemowe.
Przeczytałem również kilka postów superużytkownika na ten temat:
/superuser//search?q=com.apple.launchd.peruser,
ale uruchomienie zgłoszonych poleceń w konsoli nie dało mi żadnej wskazówki, jak rozwiązać ten problem .

Pierwsze pojawienie się tego błędu prześledziłem do 20 listopada, oto poprzednie wiersze pliku 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    

Po tym jest (naprawdę) mnóstwo tego rodzaju wiadomości.

Czy ktoś ma jakieś wskazówki?

nick2k3
źródło
Czy ostatnio usunąłeś konto użytkownika ze swojego komputera? Co się stanie, gdy otworzysz terminal i wejdziesz touch foo ; sudo chown 32697 foo ; ls -l foo?
Daniel Beck
Jaka jest wydajność sudo launchctl bstree -j, czy zawiera wiersz com.apple.launchd.peruser.32697? Jakie są elementy potomne?
Daniel Beck
wyjście touch foo; sudo chown 32697 foo; ls -l foo to: dotknij: foo: Odmowa zezwolenia, a następnie: -rw-r - r-- 1 32697 pracowników 0 26 listopada 11:55 foo
nick2k3
OK, aby identyfikator użytkownika nie istniał w systemie. launchctlbyłoby jednak interesujące.
Daniel Beck

Odpowiedzi:

10

Zastąpienia launchdzadań dla użytkownika (np. Które zadania dla użytkownika są wyłączone dla użytkownika) znajdują się w podkatalogach /private/var/db/launchd.db/np com.apple.launchd.peruser.501.

Otwórz Terminal i zobacz, kto jest właścicielem tego katalogu:

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

Jeśli właścicielem (trzecia kolumna) nie jest nazwa użytkownika, ale identyfikator numeryczny, użytkownik ten (już nie istnieje) w systemie.

Możesz po prostu usunąć ten katalog i skończyć z nim. Jeśli istnieją specjalne reguły overrides.plist, może to pomóc zrozumieć pochodzenie tego użytkownika i uruchomionych zadań.


Aby dowiedzieć się, kiedy launchdutworzono ten katalog dla poszczególnych użytkowników, wprowadź

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

To ostatnia (czwarta) data wydrukowana.


Aby znaleźć wszystkie pliki w systemie, które nie są własnością znanego użytkownika, wpisz

find / -nouser -ls

Jeśli 32697nie jest użytkownikiem w twoim systemie (bez nazwy użytkownika), może to dać ci trochę informacji (np. Pliki związane z konkretną zainstalowaną aplikacją mogą oznaczać, że aplikacja została pomylona z twoimi ustawieniami użytkownika)

Daniel Beck
źródło
„Zastąpienia zadań uruchomionych dla poszczególnych użytkowników (np. Które zadania dla użytkowników są wyłączone dla użytkownika) znajdują się w podkatalogach /private/var/db/launchd.db/, np. Com.apple.launchd.peruser.501.” możesz to wyjaśnić? jakaś dokumentacja dotycząca uruchomionych zadań zastępuje?
nick2k3
@nick Od man launchctl: -w Przesłania klucz Wyłączony i ustawia go na fałsz. W poprzednich wersjach ta opcja modyfikowała plik konfiguracyjny. Teraz stan klucza Wyłączony jest przechowywany w innym miejscu na dysku. . /.../launchd.dbto „gdzie indziej”. Jeśli wymusisz ładowanie / zwalnianie zadania dla jednego użytkownika, nie modyfikuje ono pliku używanego przez wszystkie konta (byłoby głupotą narzucać swoje preferencje innym użytkownikom w systemie z wieloma użytkownikami). I ten katalog jest tam, gdzie są one przechowywane, ale tylko wtedy, gdy są dostosowane (np. Uruchamianie domyślnie wyłączonego zadania lub odwrotnie). To nie jest tak naprawdę ważna preferencja.
Daniel Beck
Ok, dziękuję bardzo za wyjaśnienie!
nick2k3
6
Oprócz usuwania katalogu, będziemy chcieli zabić zadanie z 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
Dzięki Doug, ostatni zestaw trzech poleceń powstrzymuje to polecenie od ciągłego działania.
ConstantineK,