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()をゴーグルしましたが、システムコールのようです。
この問題に関するスーパーユーザーの投稿もいくつか読んでいます:
https : //superuser.com/search?q=com.apple.launchd.peruserです
が、報告されたコマンドをコンソールで実行しても、この問題を解決する方法についてのヒントは得られませんでした。

このエラーの最初の出現は11月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    

この後、(本当に)この種のメッセージが大量にあります。

誰にもヒントがありますか?


最近、マシンからユーザーアカウントを削除しましたか?ターミナルを開いて入力するとtouch foo ; sudo chown 32697 foo ; ls -l fooどうなりますか?
ダニエルベック


の出力は何ですかsudo launchctl bstree -j、それには行が含まれていcom.apple.launchd.peruser.32697ますか?子要素とは何ですか?
ダニエルベック

touch fooの出力; sudo chown 32697 foo; ls -l fooは:touch:foo:許可が拒否され、その後:-rw-r--r-- 1 32697 staff 0 26 Nov 11:55 foo
nick2k3

OK、ユーザーIDがシステムに存在しないようにします。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

所有者(3番目の列)がユーザー名ではなく数値IDである場合、そのユーザーは(もはや)システムに存在しません。

そのディレクトリを削除するだけで済みます。に特別なルールがある場合overrides.plist、そのユーザーと起動されたジョブの起源を理解するのに役立つかもしれません。


launchdユーザーごとのディレクトリがいつ作成されたかを確認するには、次のように入力します。

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

印刷された最後の(4番目の)日付です。


既知のユーザーが所有していないシステム上のすべてのファイルを検索するには、次のように入力します

find / -nouser -ls

32697システムのユーザーでない場合(ユーザー名なし)、これはいくつかの情報を提供する場合があります(たとえば、インストールした特定のアプリケーションに関連するファイルは、アプリケーションがユーザー設定を台無しにすることを意味する場合があります)


「ユーザーごとの起動ジョブオーバーライド(ユーザーごとに無効になっているユーザーごとのジョブなど)は、com.apple.launchd.peruser.501などの/private/var/db/launchd.db/のサブディレクトリにあります。」これを説明できますか?起動されたジョブのオーバーライドに関するドキュメントはありますか?
nick2k3

@nick From man launchctl-w Disabledキーをオーバーライドし、falseに設定します。以前のバージョンでは、このオプションは構成ファイルを変更していました。これで、Disabledキーの状態はディスク上の別の場所に保存されます。/.../launchd.db「他の場所」です。ユーザーごとのジョブを強制的にロード/アンロードする場合、すべてのアカウントで使用されるファイルは変更されません(マルチユーザーシステムで他のユーザーに設定を強制するのは一種の愚かさです)。そして、そのディレクトリはそれらが代わりに保存される場所ですが、カスタマイズされている場合のみです(たとえば、デフォルトのジョブで無効化されたジョブを実行する、またはその逆)。それは本当に重要な好みではありませ
ダニエルベック

わかりました、ご説明ありがとうございました!
nick2k3

6
-ディレクトリを削除することに加えて、あなたは、launchdのからジョブを殺したいと思うでしょうsudo launchctl stop com.apple.launchd.peruser.32697sudo launchctl unload com.apple.launchd.peruser.32697sudo launchctl remove com.apple.launchd.peruser.32697
ダグ・ハリス

Dougに感謝します。3つのコマンドの最後のセットは、そのコマンドが常に実行されないようにします。
コンスタンティン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.