FreeBSD Disable /etc/rc.d Services Which Started Up At Initial Boot Time

Q. How do I disable services located at /etc/rc.d or /usr/local/etc/rc.d directory? For example I’d like to disable a service called /etc/rc.d/foo

A. FreeBSD services can be controlled by updating /etc/rc.conf file. The file rc.conf contains descriptive information about the local host name, configuration details for any potential network interfaces and which services should be started up at system initial boot time. You can edit file manually to remove entries. It is recommended that you use sysinstall utility to modify the /etc/rc.con file.

sysinstall utility

From the man page – The sysinstall utility is used for installing and configuring FreeBSD systems. It is the first utility invoked by the FreeBSD installation boot floppy and is also available as /usr/sbin/sysinstall on newly installed FreeBSD systems for use in later configuring the system. To start sysinstall login as root and enter:
# sysinstall
Select Configure (Do post installation menu) > Startup (configure system startup options) > Use [Space] or [Enter] key to select / deselect services / items from a menu > Ok to save the changes.


(Fig. 01: FreeBSD sysinstall utility in action)

Manually edit /etc/rc.conf

You can manually edit / update /etc/rc.conf file to enable or disable services:
# vi /etc/rc.conf
To disable sendmail at boot time, find line that read as follows:
sendmail_enable="YES"
With:
sendmail_enable="NONE"
Close and save the file.

Usually all services accepts – YES and NO parameters to enable or disable services. The correct way to figure out service parameter is by reading rc.conf man page. See rc.conf man page for more information:
man rc.conf
man rc

Updated for accuracy.

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.