com.apple.launchd: ошибка com.apple.launchd.peruser

13

Уже пару дней я читаю эти ошибки в системном журнале.

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

У меня OSX Lion 10.7.2.
Эти сообщения повторяются каждые несколько секунд, я поглядел на getpwuid (), и это похоже на системный вызов.
Я также прочитал некоторые сообщения суперпользователя об этой проблеме:
/superuser//search?q=com.apple.launchd.peruser,
но выполнение сообщенных команд в консоли не дало мне никаких подсказок о том, как решить эту проблему. ,

Я проследил первое появление этой ошибки до 20 ноября, вот предыдущие строки файла 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    

После этого есть (действительно) тонны сообщений такого рода.

У кого-нибудь есть подсказка?

nick2k3
источник
Вы недавно удалили учетную запись пользователя со своего компьютера? Что происходит, когда вы открываете терминал и входите touch foo ; sudo chown 32697 foo ; ls -l foo?
Даниэль Бек
Что выводится sudo launchctl bstree -j, содержит ли он строку com.apple.launchd.peruser.32697? Каковы дочерние элементы?
Даниэль Бек
вывод touch foo; судо чоун 32697 фу; ls -l foo is: touch: foo: Отказано в доступе, а затем: -rw-r - r-- 1 32697 сотрудников 0 26 ноября 11:55 foo
nick2k3
ОК, так что идентификатор пользователя не существует в вашей системе. launchctlбыло бы интересно, хотя.
Даниэль Бек

Ответы:

10

Для каждого пользователя launchdпереопределяют задания (например , которые для каждого пользователя задания отключены для пользователя) расположены в подкаталогах /private/var/db/launchd.db/, например com.apple.launchd.peruser.501.

Откройте Терминал и посмотрите, кому принадлежит этот каталог:

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

Если владельцем (третий столбец) является не имя пользователя, а числовой идентификатор, то этот пользователь больше не существует в вашей системе.

Вы можете просто удалить этот каталог и покончить с этим. Если есть специальные правила overrides.plist, это может помочь вам понять происхождение этого пользователя и запущенные задания.


Чтобы узнать, когда launchdбыл создан этот каталог для каждого пользователя, введите

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

Это последняя (четвертая) дата.


Чтобы найти все файлы в вашей системе, которые не принадлежат известному пользователю, введите

find / -nouser -ls

Если 32697в вашей системе нет пользователя (нет имени пользователя), это может дать вам некоторую информацию (например, файлы, относящиеся к конкретному приложению, которое вы установили, могут означать, что приложение перепутано с вашими настройками пользователя)

Даниэль Бек
источник
«Переопределения запускаемых пользователем задач (например, какие пользовательские задания отключены для пользователя) находятся в подкаталогах /private/var/db/launchd.db/, например, com.apple.launchd.peruser.501.» ты можешь это объяснить? какая-либо документация о запущенных заданиях?
nick2k3
@nick From man launchctl: -w Переопределяет ключ Disabled и устанавливает его в значение false. В предыдущих версиях этот параметр изменял файл конфигурации. Теперь состояние ключа Disabled хранится в другом месте на диске. , /.../launchd.dbэто "в другом месте". Если вы принудительно загрузите / выгрузите задание для пользователя, оно не изменит файл, используемый всеми учетными записями (было бы глупо навязывать свои предпочтения другим пользователям в многопользовательской системе). И в этом каталоге они хранятся вместо этого, но только если они настроены (например, выполняется отключенное по умолчанию задание или наоборот). Это не совсем жизненное предпочтение.
Даниэль Бек
Хорошо, большое спасибо за ваше объяснение!
nick2k3
6
В дополнении к удалению каталога, вы хотите , чтобы убить работу с запуска программ - sudo launchctl stop com.apple.launchd.peruser.32697, sudo launchctl unload com.apple.launchd.peruser.32697,sudo launchctl remove com.apple.launchd.peruser.32697
Дуг Харрис
Благодаря Дагу, последний набор из трех команд не позволяет этой команде работать постоянно.
КонстантинK