Home

launchd

launchd is Apple's unified service management framework for macOS and Darwin-based systems. It is responsible for starting, supervising, and stopping daemons, agents, and other background processes, replacing older mechanisms such as init and cron with a single, centralized model.

Introduced with Mac OS X 10.4 Tiger in 2005, launchd centralizes the system startup and task scheduling.

Configuration is done with property list (.plist) files that describe individual jobs. Core keys include Label,

Management is performed with the launchctl command-line tool, which loads or unloads jobs, queries status, or

Security and deployment: macOS requires code signing and appropriate entitlements for many launchd jobs, and system

Impact: As the core service manager since early macOS, launchd coordinates startup, background processing, and resource

It
runs
as
the
first
process
(PID
1)
and
serves
as
the
parent
of
all
other
processes.
It
supports
both
system-wide
services
and
per-user
agents,
enabling
background
daemons
and
user
tasks
to
be
managed
by
a
single
framework.
ProgramArguments,
RunAtLoad,
KeepAlive,
StartInterval,
and
StartCalendarInterval.
Jobs
are
loaded
from
standard
directories
such
as
/System/Library/LaunchDaemons
and
/System/Library/LaunchAgents
for
Apple
components,
/Library/LaunchDaemons
and
/Library/LaunchAgents
for
system-wide
services,
and
per-user
agents
reside
in
~/Library/LaunchAgents.
adjusts
configurations
at
runtime.
launchd
can
launch
jobs
at
boot,
on
demand,
or
on
a
schedule.
KeepAlive
enables
automatic
respawning;
StartInterval
and
StartCalendarInterval
provide
timed
scheduling.
integrity
protections
influence
what
can
be
installed
in
system
directories.
Administrators
generally
place
custom,
system-level
services
under
the
LaunchDaemons
directory
and
user
agents
under
LaunchAgents.
management
across
the
system
and
user
sessions,
contributing
to
reliability
and
resource
efficiency.