com.apple.launchd: kesalahan com.apple.launchd.peruser

13

Sudah beberapa hari saya membaca kesalahan ini dalam file log sistem.

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

Saya memiliki OSX Lion 10.7.2.
Pesan ini berulang setiap beberapa detik, saya telah mendapatkan getpwuid () dan tampaknya menjadi panggilan sistem.
Saya juga telah membaca beberapa posting pengguna super tentang masalah ini:
https://superuser.com/search?q=com.apple.launchd.peruser
tetapi menjalankan perintah yang dilaporkan di konsol tidak memberi saya petunjuk tentang cara mengatasi masalah ini. .

Saya telah melacak penampilan pertama kesalahan ini hingga 20 November, berikut adalah baris-baris file system.log sebelumnya:

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    

Setelah ini ada (sungguh) berton-ton pesan semacam ini.

Adakah yang punya petunjuk?

nick2k3
sumber
Apakah Anda baru saja menghapus akun pengguna dari mesin Anda? Apa yang terjadi ketika Anda membuka terminal dan masuk touch foo ; sudo chown 32697 foo ; ls -l foo?
Daniel Beck
Apa output dari sudo launchctl bstree -j, apakah itu berisi garis com.apple.launchd.peruser.32697? Apa saja elemen anak?
Daniel Beck
output dari touch foo; sudo chown 32697 foo; ls-l foo adalah: touch: foo: Izin ditolak dan kemudian: -rw-r - r-- 1 32697 staf 0 26 Nov 11:55 foo
nick2k3
OK, sehingga ID pengguna tidak ada di sistem Anda. launchctlakan menarik.
Daniel Beck

Jawaban:

10

Timpa launchdpekerjaan per pengguna (mis. Pekerjaan per pengguna yang dinonaktifkan untuk pengguna) berada di subdirektori dari /private/var/db/launchd.db/, misalnya com.apple.launchd.peruser.501.

Buka Terminal dan lihat siapa yang memiliki direktori ini:

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

Jika pemilik (kolom ketiga) bukan nama pengguna, tetapi ID numerik, pengguna itu tidak (lagi) ada di sistem Anda.

Anda bisa menghapus direktori itu dan selesai melakukannya. Jika ada aturan khusus dalam overrides.plist, itu mungkin membantu Anda memahami asal pengguna itu dan pekerjaan launchd.


Untuk mengetahui kapan launchddirektori per pengguna itu dibuat, masukkan

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

Tanggal terakhir (keempat) dicetak.


Untuk menemukan semua file di sistem Anda yang tidak dimiliki oleh pengguna yang dikenal, masukkan

find / -nouser -ls

Jika 32697bukan pengguna di sistem Anda (tidak ada nama pengguna), ini mungkin memberi Anda beberapa informasi (misalnya file yang terkait dengan aplikasi tertentu yang Anda instal dapat berarti aplikasi itu kacau dengan pengaturan pengguna Anda)

Daniel Beck
sumber
"Penggantian tugas peluncuran per pengguna (misalnya, pekerjaan per pengguna mana yang dinonaktifkan untuk pengguna) berada di subdirektori dari /private/var/db/launchd.db/, mis. Com.apple.launchd.peruser.501." bisakah kamu menjelaskan ini? ada dokumentasi tentang penggantian pekerjaan yang diluncurkan?
nick2k3
@nick Dari man launchctl: -w Mengganti kunci Dinonaktifkan dan menetapkannya ke false. Dalam versi sebelumnya, opsi ini akan memodifikasi file konfigurasi. Sekarang status tombol Dinonaktifkan disimpan di tempat lain di dalam disk. . /.../launchd.dbadalah "di tempat lain". Jika Anda memaksa memuat / menurunkan pekerjaan per pengguna, itu tidak mengubah file yang digunakan oleh semua akun (akan agak bodoh untuk memaksakan preferensi Anda pada orang lain pada sistem multi-pengguna). Dan direktori itu adalah tempat mereka disimpan, tetapi hanya jika dikustomisasi (mis. Menjalankan dinonaktifkan oleh pekerjaan default atau sebaliknya). Ini bukan benar-benar preferensi vital.
Daniel Beck
Ok, terima kasih banyak atas penjelasannya!
nick2k3
6
Selain menghapus direktori, Anda akan ingin membunuh pekerjaan dari 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
Terima kasih Doug, set ketiga perintah terakhir menghentikan perintah agar tidak terus berjalan.
ConstantineK