ข้อผิดพลาด 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 บางส่วนเกี่ยวกับปัญหานี้:
/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    

หลังจากนี้มีข้อความประเภทนี้มากมาย

ใครมีคำใบ้บ้าง?


คุณเพิ่งลบบัญชีผู้ใช้จากเครื่องของคุณหรือไม่? จะเกิดอะไรขึ้นเมื่อคุณเปิด terminal และป้อนtouch foo ; sudo chown 32697 foo ; ls -l foo?
Daniel Beck


ผลลัพธ์ของsudo launchctl bstree -jมันcom.apple.launchd.peruser.32697คืออะไรมีเส้นตรงหรือไม่? องค์ประกอบของเด็กคืออะไร?
Daniel Beck

ผลลัพธ์ของ touch foo; sudo chown 32697 foo; ls -l foo คือ: แตะ: foo: ปฏิเสธการอนุญาตจากนั้น: -rw-r - r-- 1 32,697 คน 0 26 พ.ย. 11:55 foo
nick2k3

ตกลงดังนั้น ID ผู้ใช้จะไม่มีอยู่ในระบบของคุณ launchctlจะน่าสนใจว่า
Daniel Beck

คำตอบ:


10

ต่อผู้ใช้launchdแทนที่งาน (เช่นซึ่งต่อผู้ใช้งานจะปิดการใช้งานสำหรับผู้ใช้) ตั้งอยู่ในไดเรกทอรีย่อยของเช่น/private/var/db/launchd.db/com.apple.launchd.peruser.501

เปิด Terminal และดูว่าใครเป็นเจ้าของไดเรกทอรีนี้:

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ไม่ใช่ผู้ใช้ในระบบของคุณ (ไม่มีชื่อผู้ใช้) สิ่งนี้อาจให้ข้อมูลบางอย่างแก่คุณ (เช่นไฟล์ที่เกี่ยวข้องกับแอปพลิเคชันเฉพาะที่คุณติดตั้งอาจหมายถึงแอปพลิเคชันนั้นยุ่งกับการตั้งค่าผู้ใช้ของคุณ)


"การแทนที่งาน launchd ต่อผู้ใช้ (เช่นงานต่อผู้ใช้ถูกปิดใช้งานสำหรับผู้ใช้) ตั้งอยู่ในไดเรกทอรีย่อยของ /private/var/db/launchd.db/ เช่น com.apple.launchd.peruser.501" คุณอธิบายได้ไหม เอกสารใด ๆ เกี่ยวกับการแทนที่งานที่เปิดตัว?
nick2k3

@nick จากman launchctl: -w แทนที่คีย์ Disabled และตั้งค่าเป็นเท็จ ในเวอร์ชันก่อนหน้าตัวเลือกนี้จะแก้ไขไฟล์กำหนดค่า ตอนนี้สถานะของคีย์ Disabled จะถูกเก็บไว้ที่อื่นบนดิสก์ . /.../launchd.dbคือ "ที่อื่น" หากคุณบังคับให้โหลด / ยกเลิกการโหลดงานต่อผู้ใช้งานจะไม่แก้ไขไฟล์ที่ใช้โดยบัญชีทั้งหมด (จะเป็นประเภทที่โง่เพื่อกำหนดค่ากำหนดของคุณที่คนอื่น ๆ ในระบบที่มีผู้ใช้หลายคน) และไดเรกทอรีนั้นเป็นที่เก็บของพวกเขาแทน แต่ถ้ากำหนดเอง (เช่นการปิดการใช้งานโดยงานเริ่มต้นหรือในทางกลับกัน) มันไม่ใช่การตั้งค่าที่สำคัญจริงๆ
Daniel Beck

ตกลงขอบคุณมากสำหรับคำอธิบายของคุณ!
nick2k3

6
นอกจากลบไดเรกทอรีคุณจะต้องการที่จะฆ่างานจาก 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 ชุดคำสั่งสามชุดสุดท้ายหยุดคำสั่งนั้นไม่ให้ทำงานต่อเนื่อง
ConstantineK
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.