What Is /Library/LaunchDaemons on Mac?
System (root-owned)Updated
- Full path
/Library/LaunchDaemons
- Scope
- System (root-owned)Shared by every account on the Mac and owned by macOS (root).
- Freshist & this folder
- Freshist checks this folder when uninstalling an app. When you uninstall an app, Freshist only considers items directly inside this folder whose name matches the app's bundle ID. They're never pre-selected, and because the folder is owned by macOS (root), selected items are deleted permanently by Freshist's signed helper rather than moved to the Trash.
From Freshist's own cleaning rules — the same catalog the app uses.
Daemons in short
A launch daemon is a background job that launchd starts at boot, or on demand, and runs as root. Daemons have no access to a user's screen and keep running when nobody is logged in. Apple's own daemons live in /System/Library/LaunchDaemons, which is protected by macOS. Third-party daemons are installed in /Library/LaunchDaemons, one property list per job.
Typical third-party uses:
- Privileged helpers that perform tasks needing root on behalf of an app, such as changing network settings or managing disks.
- Network tools like VPN clients and firewalls.
- Virtualization and container tools that set up virtual networking.
- Updaters that install new versions without asking for a password each time.
The plist names the Label, the Program or ProgramArguments to run, and conditions such as RunAtLoad or KeepAlive. Apps adopting Apple's newer SMAppService API keep the daemon's plist inside the app bundle instead of here, which ties the daemon's life to the app.
What happens when the app is gone
| Situation | Effect |
|---|---|
| Plist and program both left behind | The service may keep running as root at every boot |
| Plist left, program deleted | launchd tries to start a missing file and logs errors |
| Program left, plist deleted | Nothing starts it; the file is inert |
If both files are still there, clean them up: a leftover root service for software you've removed is unnecessary, and it may stop getting security updates.
Inspecting it read-only
ls -la /Library/LaunchDaemons
plutil -p /Library/LaunchDaemons/com.example.helper.plist
sudo launchctl print system/com.example.helper
The print command shows whether launchd has the job loaded, its state and the program path. sudo sfltool dumpbtm lists the background items macOS knows about and which app each belongs to. In System Settings, the same items show up under General → Login Items & Extensions → Allow in the Background.
Removing a leftover daemon
- Try the vendor's uninstaller first. Daemons often come with kernel or system extensions, network configurations or helpers that a manual removal misses.
- Or switch it off under Allow in the Background if you just want it to stop.
- Remove it by hand only when the app is already deleted:
sudo launchctl bootout system /Library/LaunchDaemons/com.example.helper.plist
sudo rm /Library/LaunchDaemons/com.example.helper.plist
Then check /Library/PrivilegedHelperTools for a program with the same name, and /Library/Application Support for its support files. Restart when you're done.
Leave anything you can't identify. Some daemons belong to drivers, backup tools or device management configured by your organization, and removing them can break features or violate policy.
How this relates to Freshist
The facts box above shows how Freshist treats this folder during an uninstall. Because it only matches plists named after the app's bundle ID, a daemon with a vendor-specific label (for example com.example.vmnetd for an app whose ID is com.example.app) needs to be checked by hand.
For the per-session counterpart, see /Library/LaunchAgents. Our article on login items and background apps covers the System Settings side.
Sources
- Creating Launch Daemons and Agents (Apple Daemons and Services Programming Guide)
- SMAppService (Apple Developer Documentation)
- Open items automatically when you log in on Mac (Apple Support)
man launchd.plistandman launchctlin Terminal
Frequently asked questions
Is it dangerous to have third-party launch daemons?
Not by itself. Many legitimate apps need one. Because daemons run as root, it's worth knowing what each one is, and removing those whose apps you no longer use.
I removed a daemon's plist but the process is still running. Why?
Deleting the file doesn't stop a job launchd has already loaded. Unload it with launchctl bootout, or restart the Mac.
Why does the same name appear in LaunchDaemons and PrivilegedHelperTools?
Apps that install a privileged helper usually put the helper program in /Library/PrivilegedHelperTools and the plist that launches it in /Library/LaunchDaemons, under the same label. Remove both together.