You’re scrolling through Activity Monitor when you notice a process you’re not familiar with: launchd. Should you be worried? No: this is actually a core part of macOS.
This article is part of our ongoing series explaining various processes found in Activity Monitor, like kernel_task, hidd, mdsworker, installd, WindowServer, blued, and many others. Don’t know what those services are? Better start reading!
This particular process, launchd, is the service management framework used by macOS, similar in some ways to Service Control Manager on Windows or systemd on many Linux distributions. A “service” is anything running in the background; on macOS these are commonly referred to as daemons and generally have names ending with the letter “d.” Most everything your Mac does—connecting to networks, showing things on the display, and backing up your files—is done by a daemon on some level.
When you turn on your Mac, launchd is one of the first things launched, after the kernel. This is why launchd has the Process ID, or PID, of 1, on every Mac system.
The only lower number is 0, which belongs to the kernel, represented here as kernel_task.
After launching, launchd proceeds to to launch all of the other daemons your Mac needs in order to run. After you Mac starts up, launchd continues running in the background to check that daemons are still running, and to launch any daemons needed later to run your various programs.
It’s very rare for launchd to take up many system resources, and when it does happen, rebooting your Mac is usually enough to fix it. Occasionally a buggy program trying to launch faulty daemons can cause launchd to use up a bunch of CPU. If you’ve installed something recently, try removing that and seeing if it helps.
For the most part, launchd isn’t anything users need to think about, but it is possible to interface with it directly thanks to launchctl, a Termianl tool for interfacing with launcd. Type
launchctl list and you’ll see a list of every background service currently running on your Mac.
Messing with this much more is not a good idea unless you’re a very advanced user, but anyone interested can type
launchctl help for a list of potential subcommands, or reading this advanced launchd tutorial.