DragonFly uses the NetBSD®
rc.d system for system initialization.
Users should notice the files listed in the
/etc/rc.d directory. Many of these files
are for basic services which can be controlled with the
For instance, sshd(8) can be restarted with the following
# /etc/rc.d/sshd restart
This procedure is similar for other services. Of course, services are usually started automatically as specified in rc.conf(5). For example, enabling the Network Address Translation daemon at startup is as simple as adding the following line to /etc/rc.conf:
natd_enable="NO" line is already
present, then simply change the
YES. The rc scripts will automatically load
any other dependent services during the next reboot, as
Since the rc.d system is primarily
intended to start/stop services at system startup/shutdown time,
restart options will only
perform their action if the appropriate
/etc/rc.conf variables are set. For
instance the above sshd restart command will
only work if
sshd_enable is set to
YES in /etc/rc.conf. To
restart a service regardless of the settings in
/etc/rc.conf, the commands should be
prefixed with ``force''. For instance to restart
sshd regardless of the current
/etc/rc.conf setting, execute the following
# /etc/rc.d/sshd forcerestart
It is easy to check if a service is enabled in
/etc/rc.conf by running the appropriate
rc.d script with the option
rcvar. Thus, an administrator can check that
sshd is in fact enabled in
/etc/rc.conf by running:
# /etc/rc.d/sshd rcvar # sshd $sshd_enable=YES
Note: The second line (# sshd) is the output from the rc.d script, not a root prompt.
To determine if a service is running, a
status option is available. For instance to
verify that sshd is actually started:
# /etc/rc.d/sshd status sshd is running as pid 433.
It is also possible to
reload a service.
This will attempt to send a signal to an individual service, forcing the
service to reload its configuration files. In most cases this
means sending the service a SIGHUP
The rcNG structure is used both for network services and system initialization. Some services are run only at boot; and the RCNG system is what triggers them.
Many system services depend on other services to function properly. For example, NIS and other RPC-based services may fail to start until after the rpcbind (portmapper) service has started. To resolve this issue, information about dependencies and other meta-data is included in the comments at the top of each startup script. The rcorder(8) program is then used to parse these comments during system initialization to determine the order in which system services should be invoked to satisfy the dependencies. The following words may be included at the top of each startup file:
PROVIDE: Specifies the services this file provides.
REQUIRE: Lists services which are required for this service. This file will run after the specified services.
BEFORE: Lists services which depend on this service. This file will run before the specified services.
KEYWORD: When rcorder(8) uses the
option, then only the rc.d files matching this keyword are used.
For example, when using
-k shutdown, only the
rc.d scripts defining the
shutdown keyword are used.
-s option, rcorder(8) will
skip any rc.d script defining the
corresponding keyword to skip. For example, scripts defining the
nostart keyword are skipped at boot time.
By using this method, an administrator can easily control system services without the hassle of ``runlevels'' like some other UNIX® operating systems.
Previously this was used to define *BSD dependent features.
Contact the Documentation mailing list for comments, suggestions and questions about this document.