com.apple.launchd: com.apple.launchd.peruser lỗi


13

Đã vài ngày tôi đọc những lỗi này trong tệp nhật ký hệ thống.

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

Tôi có OSX Lion 10.7.2.
Những tin nhắn này cứ lặp đi lặp lại cứ sau vài giây, tôi đã gầm gừ getpwuid () và nó dường như là một cuộc gọi hệ thống.
Tôi cũng đã đọc một số bài đăng siêu người dùng về vấn đề này:
/superuser//search?q=com.apple.launchd.peruser
nhưng việc chạy các lệnh được báo cáo trong bảng điều khiển không cho tôi bất kỳ gợi ý nào về cách giải quyết vấn đề này .

Tôi đã truy ngược lại lần xuất hiện đầu tiên của lỗi này đến ngày 20 tháng 11, đây là các dòng trước của tệp 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    

Sau này, có (rất nhiều) tin nhắn thuộc loại này.

Có ai có bất cứ gợi ý?


Gần đây bạn đã xóa một tài khoản người dùng từ máy của bạn? Điều gì xảy ra khi bạn mở terminal và nhập touch foo ; sudo chown 32697 foo ; ls -l foo?
Daniel Beck


Đầu ra của sudo launchctl bstree -jnó là gì , nó có chứa một dòng với com.apple.launchd.peruser.32697? Các yếu tố con là gì?
Daniel Beck

đầu ra của cảm ứng foo; sudo chown 32697 foo; ls -l foo là: touch: foo: Quyền bị từ chối và sau đó: -rw-r - r-- 1 32697 nhân viên 0 26 tháng 11 11:55 foo
nick2k3

OK, để ID người dùng không tồn tại trên hệ thống của bạn. launchctlsẽ rất thú vị
Daniel Beck

Câu trả lời:


10

Mỗi người dùng launchdghi đè công việc (ví dụ mà mỗi người dùng công việc đang bị vô hiệu hóa cho người dùng) được đặt tại thư mục con của /private/var/db/launchd.db/, ví dụ com.apple.launchd.peruser.501.

Mở Terminal và xem ai sở hữu thư mục này:

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

Nếu chủ sở hữu (cột thứ ba) không phải là tên người dùng, mà là ID số, ​​người dùng đó sẽ không tồn tại trên hệ thống của bạn.

Bạn chỉ có thể loại bỏ thư mục đó và được thực hiện với nó. Nếu có các quy tắc đặc biệt trong overrides.plist, nó có thể giúp bạn hiểu nguồn gốc của người dùng đó và các công việc launchd.


Để tìm hiểu khi nào thư mục launchdtheo người dùng được tạo, hãy nhập

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

Đó là ngày cuối cùng (thứ tư) được in.


Để tìm tất cả các tệp trên hệ thống của bạn không thuộc sở hữu của người dùng đã biết, hãy nhập

find / -nouser -ls

Nếu 32697không phải là người dùng trên hệ thống của bạn (không có tên người dùng), điều này có thể cung cấp cho bạn một số thông tin (ví dụ: các tệp liên quan đến một ứng dụng cụ thể mà bạn đã cài đặt có thể có nghĩa là ứng dụng đó bị rối với cài đặt người dùng của bạn)


"Ghi đè công việc cho mỗi người dùng (ví dụ: công việc cho mỗi người dùng bị vô hiệu hóa cho người dùng) được đặt trong các thư mục con của /private/var/db/launchd.db/, ví dụ: com.apple.launchd.peruser.501." Bạn có thể giải thích điều này? bất kỳ tài liệu về khởi động công việc ghi đè?
nick2k3

@nick From man launchctl: -w Ghi đè phím Vô hiệu hóa và đặt thành sai. Trong các phiên bản trước, tùy chọn này sẽ sửa đổi tệp cấu hình. Bây giờ trạng thái của Khóa bị vô hiệu hóa được lưu trữ ở nơi khác trên đĩa. . /.../launchd.dblà "nơi khác". Nếu bạn buộc tải / hủy tải công việc cho mỗi người dùng, nó sẽ không sửa đổi tệp được sử dụng bởi tất cả các tài khoản (sẽ là ngu ngốc khi áp đặt tùy chọn của bạn lên người khác trên hệ thống nhiều người dùng). Và thư mục đó là nơi chúng được lưu trữ thay thế, nhưng chỉ khi được tùy chỉnh (ví dụ: chạy bị vô hiệu hóa theo công việc mặc định hoặc ngược lại). Nó không thực sự là một sở thích quan trọng.
Daniel Beck

Ok, cảm ơn bạn rất nhiều vì lời giải thích của bạn!
nick2k3

6
Ngoài việc loại bỏ các thư mục, bạn sẽ muốn giết công việc từ 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

Cảm ơn Doug, bộ ba lệnh cuối cùng ngăn lệnh đó liên tục chạy.
ConstantineK
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.