Post

How to Fix Stuck macOS Processes via Terminal

Reset frozen macOS system processes like Dock, Finder, Bluetooth, and audio without rebooting using killall and launchctl.

How to Fix Stuck macOS Processes via Terminal

Most frozen macOS UI issues resolve with a single Terminal command — no reboot required.

Quick Reference

SymptomCommandRisk
Menu bar frozenkillall SystemUIServerLow
Control Center stuckkillall ControlCenterLow
Notifications glitchedkillall NotificationCenterLow
Dock frozenkillall DockLow
Finder unresponsivekillall FinderLow
Bluetooth flakysudo pkill bluetoothdLow
Audio brokensudo killall coreaudiodLow
DNS not resolvingsudo killall -HUP mDNSResponderLow
Preferences stalekillall cfprefsdMedium
GUI completely stucksudo killall -HUP WindowServerHigh

System UI

Menu bar icons stop responding, clock freezes, or status icons disappear.

1
killall SystemUIServer

SystemUIServer relaunches instantly via launchd. All menu extras reload.

Control Center Stuck

The Control Center overlay (Wi-Fi, Bluetooth, Display, Focus) stays visible or stops responding.

1
killall ControlCenter

Only applies to macOS Big Sur and later. The panel relaunches automatically.

Notification Center Glitches

Notifications stack incorrectly, the sidebar won’t dismiss, or widgets stop updating.

1
killall NotificationCenter

Dock Frozen

Dock stops responding to clicks, Spaces gestures break, or Mission Control hangs.

1
killall Dock

Dock, Spaces, and Mission Control all restart. Running apps stay open.

To fully reset Dock layout and preferences back to defaults:

1
defaults delete com.apple.dock; killall Dock

Warning: This resets all Dock customizations — app arrangement, size, auto-hide, and hot corners.

Finder Unresponsive

Finder windows won’t open, desktop icons vanish, or file operations hang.

1
killall Finder

Finder relaunches and restores open windows. In-progress file copies may fail.

Connectivity and Services

Bluetooth Issues

Devices won’t pair, audio cuts out on AirPods, or Bluetooth toggles without effect.

1
sudo pkill bluetoothd

The bluetoothd daemon restarts via launchd. Previously paired devices reconnect automatically.

Audio Problems

No sound output, crackling audio, or output device stuck on the wrong source.

1
sudo killall coreaudiod

All audio streams reset. Active playback (Spotify, YouTube) resumes within seconds.

For iOS Simulator-specific audio glitches, see Fix iOS Simulator Audio Glitches on macOS.

DNS Not Resolving

Websites fail to load while internet is connected, or stale DNS entries persist after switching networks.

1
sudo killall -HUP mDNSResponder

The -HUP signal flushes the DNS cache without fully terminating the process. Verify the cache is cleared:

1
sudo dscacheutil -flushcache

Stale Preferences

App settings revert, changes to System Settings don’t persist, or defaults write commands have no effect.

1
killall cfprefsd

Forces the preferences daemon to reload all .plist files. Pair with defaults write commands that aren’t taking effect.

GUI Reset

When the entire graphical interface is unresponsive — display artifacts, frozen login screen, or input stops working:

1
sudo killall -HUP WindowServer

Warning: This restarts the entire graphical session. All open applications close and unsaved work is lost. Use only when the alternative is a hard reboot.

When killall Isn’t Enough

Some system daemons don’t relaunch cleanly after killall. Use launchctl to explicitly restart the service.

1
2
3
# Stop and start a service
sudo launchctl stop system/com.apple.service_name
sudo launchctl start system/com.apple.service_name

Find the correct service name:

1
2
launchctl list | grep bluetooth
> - 0 com.apple.bluetoothd

Since macOS 14.4, Apple restricted launchctl kickstart -k for 150+ critical system processes. Use launchctl kill as the alternative:

1
2
# Send TERM signal to a launchd service
sudo launchctl kill SIGTERM system/com.apple.bluetoothd

Important Notes

  • Most processes auto-relaunch via launchd — killing them is effectively a restart
  • Commands with sudo prompt for your admin password
  • killall sends SIGTERM (graceful shutdown) by default
  • -HUP tells a process to reload configuration without full termination
  • -KILL (or -9) forces immediate termination — use as last resort
  • SIP (System Integrity Protection) prevents killing some core processes on macOS 14+

☕ Support My Work

If you found this post helpful and want to support more content like this, you can buy me a coffee!

Your support helps me continue creating useful articles and tips for fellow developers. Thank you! 🙏

This post is licensed under CC BY 4.0 by the author.