The future of…
configd — System Configuration Daemon
configd [-bdv] [-B bundleID] [-V bundleID] [-t bundle-path]
The configd daemon is responsible for many configuration aspects of the
local system. configd maintains data reflecting the desired and current
state of the system, provides notifications to applications when this
data changes, and hosts a number of configuration agents in the form of
Each configuration agent is responsible for a well-defined aspect of con-
figuration management. The agents look to one or more input sources
(preferences, low-level kernel events, configd notifications, etc) and,
through a set of policy modules, interacts with the system to establish
the desired operational configuration.
Access to the data maintained by configd is via the SystemConfigura-
tion.framework SCDynamicStore APIs.
The command line options are as follows:
-b Don’t actually load any bundles.
-B bundleID Prevents the loading of the bundle with the specified bundleID.
-d Run configd in the foreground without forking. This is useful for debugging.
-v Puts configd into verbose mode. Displays debugging information about bundles as they are being loaded.
-V bundleID Turns verbose mode on for the bundle with the specified bundleID.
-t bundle-path Loads only the bundle specified by bundle-path.
At the present time, the majority of the configuration agents (or bun-
dles) hosted by configd are used to establish and maintain the network
configuration. These agents include:
This bundle is responsible for establishing and maintaining the AppleTalk
network configuration on the system.
This bundle is responsible for monitoring kernel events and conveying
changes to the network state (e.g. link status) to other configuration
agents and interested applications.
This bundle provides a name to each of the system’s network interfaces.
The bundle queries the IOKit Registry for a list of network devices
attached to the system and gives them BSD style names such as “en0”.
This agent is responsible for establishing and maintaining IPv4 addresses
on the system. These addresses may be manually specified in the network
preferences or acquired using DHCP (or BOOTP).
This agent is responsible for establishing and maintaining IPv6 addresses
on the system.
This agent is responsible for establishing and maintaining the primary
network service, the default route, the active DNS configuration, and the
active network proxies on the system.
This agent is responsible for establishing and maintaining the media
type, media options, and MTU for ethernet interfaces.
This agent is responsible for conveying the network configuration prefer-
ences specified by the administrator to the various configuration agents
(AppleTalk, IPv4, IPv6, …).
This agent is responsible for establishing and maintaining PPP connec-
tions on the system.
/System/Library/SystemConfiguration/Directory of configd bundles
/Library/Preferences/SystemConfiguration/Default directory for system configuration persistent store files.
…/preferences.plist System configuration
…/NetworkInterfaces.plist Network interface –> BSD interface mappings
…/VirtualNetworkInterfaces.plist Virtual network interface (VLAN) configuration
Log messages generated by configd and any configuration agents will are
sent to the system log daemon by syslog(3). The syslog facility used is
LOG_DAEMON. If the -d option is specified, log messages with written to
stdout (or stderr if the priority is greater than LOG_NOTICE).
configd was designed to run without any intervention but if you insist on
sending a signal to the daemon then the following are available:
SIGHUP This signal, typically used to tell a daemon to reload it’s con-
figuration, is ignored (there is no configuration).
SIGTERM This signal initiates a “graceful” shutdown of the daemon.
The configd daemon appeared in Mac OS X Public Beta.
Unless started with the -d option, configd will register with
mach_init(8) such that the daemon will be restarted in the event of a
crash. This registration will be removed during “graceful” shutdowns of
This daemon and its current behavior may change without notice. Do not
rely on its existence or its behavior. Consider it an unsupported com-