Symptoms
- Repeated crash reports for
com.apple.launchd.peruserin Console.app - High CPU usage by
launchdorkernel_task - System sluggishness or beachball cursor
- Crash logs filling up
~/Library/Logs/DiagnosticReports - User session may fail to start properly after login
Root Causes
The com.apple.launchd.peruser process manages user-specific launch agents (plist files in ~/Library/LaunchAgents). A crash loop occurs when:
- A corrupted or misconfigured third-party launch agent plist causes launchd to crash repeatedly
- Damaged user preferences or cache files
- Permissions issues on user Library folders
- Incompatible software installed via Homebrew or other package managers
- macOS system corruption after an update or upgrade
Step-by-Step Fix
1. Boot into Safe Mode
- Restart your Mac and hold the Shift key during startup
- Release when the login window appears (may take longer)
- Safe Mode disables all third-party launch agents and kernel extensions
- If the crash stops, a third-party agent is the culprit
2. Identify Problematic Launch Agents
- Open Terminal
- List all user launch agents:
ls ~/Library/LaunchAgents/ - Check system-wide agents:
ls /Library/LaunchAgents/andls /Library/LaunchDaemons/ - Look for recently added or suspicious plist files (e.g., from uninstalled apps)
3. Remove or Disable Suspect Plists
- Move suspect plists to a backup folder:
mkdir ~/Desktop/backup_launchagents && mv ~/Library/LaunchAgents/suspect.plist ~/Desktop/backup_launchagents/ - Repeat for any other suspicious files
- Restart normally and check if the crash loop stops
4. Repair Permissions (macOS Catalina and earlier)
- Boot into Recovery Mode (Cmd+R at startup)
- Open Terminal from Utilities menu
- Run:
diskutil resetUserPermissions / $(id -u) - For system permissions:
diskutil repairPermissions /(if available)
5. Reset User Launch Services Database
- In Terminal:
sudo launchctl unload -w ~/Library/LaunchAgents/*.plist - Then:
sudo launchctl load -w ~/Library/LaunchAgents/*.plist - Alternatively, remove all user agents temporarily:
mv ~/Library/LaunchAgents ~/Library/LaunchAgents_backup - Restart and create a new empty LaunchAgents folder:
mkdir ~/Library/LaunchAgents
6. Check for Homebrew or MacPorts Conflicts
- If using Homebrew, run:
brew doctorandbrew cleanup - Remove any outdated or broken packages:
brew remove --force - For MacPorts:
sudo port -f uninstall inactive
Alternative Fixes
- Create a new user account: If the issue persists only for your user, create a new admin account and migrate data. This isolates user-specific corruption.
- Reset NVRAM/PRAM: Shut down, then press Option+Cmd+P+R at startup for 20 seconds.
- Reinstall macOS: Use Recovery Mode to reinstall macOS without erasing data. This replaces system files but preserves user data.
Prevention
- Only install launch agents from trusted developers
- Regularly clean up old plist files from uninstalled apps
- Keep macOS and all software updated
- Use
launchctl listperiodically to review running agents - Back up your Mac with Time Machine before making system changes
By following these steps, you can resolve the com.apple.launchd.peruser crash loop and restore normal system performance.