rc.8 revision 81285
Copyright (c) 1980, 1991, 1993
The Regents of the University of California. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by the University of
California, Berkeley and its contributors.
4. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

@(#)rc.8 8.2 (Berkeley) 12/11/93
$FreeBSD: head/share/man/man8/rc.8 81285 2001-08-08 11:48:28Z ru $

.Dd December 11, 1993 .Dt RC 8 .Os .Sh NAME .Nm rc .Nd command scripts for auto-reboot and daemon startup .Sh SYNOPSIS .Nm .Nm rc.conf .Nm rc.conf.local .Nm rc.d .Nm rc.serial .Nm rc.pccard .Nm rc.network .Nm rc.firewall .Nm rc.atm .Nm rc.<arch> .Nm rc.local .Nm rc.shutdown .Sh DESCRIPTION .Nm Rc is the command script which controls the automatic reboot (calling the other scripts) and .Nm rc.local is the script holding commands which are pertinent only to a specific site. Typically, the /usr/local/etc/rc.d mechanism is used instead of rc.local these days but if you do want to use rc.local, /etc/rc still supports it. In this case, rc.local should source /etc/rc.conf and contain additional custom startup code for your system. .Nm Rc.conf contains the global system configuration information referenced by the rc files, while .Nm rc.conf.local contains the local system configuration. See .Xr rc.conf 5 .

p The .Nm rc.d directories contain scripts which will be automatically executed at boot time and shutdown time. At boot time, the specified directories are processed immediately after .Nm rc.local is executed. (See below for details on how to specify directories to check.) At shutdown time, the directories are processed by .Nm rc.shutdown . The following key points apply to the scripts within each directory:

p l -bullet -compact t Scripts are only executed if their .Xr basename 1 matches the shell globbing pattern

a *.sh , and they are executable. Any other files or directories present within the directory are silently ignored. t When a script is executed at boot time, it is passed the string .Dq start as its first and only argument. At shutdown time, it is passed the string .Dq stop as its first and only argument. All .Nm rc.d scripts expected to handle these arguments appropriately. If no action needs to be taken at a given time (either boot time or shutdown time) the script should exit successfully and without producing an error message. t The scripts within each directory are executed in lexicographical order. If a specific order is required, numbers may be used as a prefix to the existing filenames, so for example

a 100.foo would be executed before

a 200.bar ; without the numeric prefixes the opposite would be true. .El

p The output from each script is traditionally a space character, followed by the name of the software package being started or shut down, .Em without a trailing newline character (see the .Sx EXAMPLES section).

p The system initialization scripts can execute scripts from multiple .Nm rc.d directories. The default locations are

a /usr/local/etc/rc.d and

a /usr/X11R6/etc/rc.d , but these may be overridden with the .Va local_startup .Xr rc.conf 5 variable.

p .Nm Rc.shutdown is the command script which contains any necessary commands to be executed as the system is shut down.

p When an automatic reboot is in progress, .Nm is invoked with the argument .Em autoboot . The first portion of .Nm runs an .Xr fsck 8 with option .Fl p to ``preen'' all the disks of minor inconsistencies resulting from the last system shutdown and to check for serious inconsistencies caused by hardware or software failure. If this auto-check and repair succeeds, then the second part of .Nm is run.

p The second part of .Nm , which is run after an auto-reboot succeeds and also if .Nm is invoked when a single user shell terminates (see .Xr init 8 ) , starts all the daemons on the system, preserves editor files and clears the scratch directory

a /tmp .

p .Nm Rc.serial is used to set any special configurations for serial devices.

p .Nm Rc.pccard is used to enable PC-cards.

p .Nm Rc.network is used to start the network. The network is started in three passes. The first pass sets the hostname and domainname, configures the network interfaces, turns on any IP firewall rules, and starts routing. The second pass starts most of the network related daemons. The third pass starts NFS, amd, rwhod, Kerberos and the multicast routing daemon.

p .Nm Rc.firewall is used to configure rules for the kernel based firewall service. It has several possible options:

p l -tag -width "fBfilename" -compact -offset indent t open will allow anyone in. t client will try to protect just this machine. t simple will try to protect a whole network. t closed totally disables IP services except via lo0 interface. t UNKNOWN disables the loading of firewall rules. t filename will load the rules in the given filename (full path required). .El

p .Nm Rc.atm is used to configure ATM network interfaces. The interfaces are configured in three passes. The first pass performs the initial interface configuration. The second pass completes the interface configuration and defines PVCs and permanent ATMARP entries. The third pass starts any ATM daemons.

p .Nm Rc.<arch> runs architecture specific programs.

p .Nm Rc.local is executed after the scripts above, but before the rest of the .Nm file is completed. In a default installation .Nm rc.local does not exist, but its contents will be executed if the file is created by the administrator.

p Following tradition, the startup files reside in

a /etc . .Sh EXAMPLES The following is a simple, hypothetical example of an .Nm rc.d script, which would start a daemon at boot time, and kill it at shutdown time. d -literal -offset indent #!/bin/sh - # # initialization/shutdown script for foobar package case "$1" in start) /usr/local/sbin/foo -d && echo -n ' foo' ;; stop) kill `cat /var/run/foo.pid` && echo -n ' foo' ;; *) echo "unknown option: $1 - should be 'start' or 'stop'" >&2 ;; esac .Ed

p As all processes are killed by .Xr init 8 at shutdown, the explicit .Xr kill 1 is unnecessary, but is often included. .Sh SEE ALSO .Xr kill 1 , .Xr rc.conf 5 , .Xr init 8 , .Xr reboot 8 , .Xr savecore 8 .Sh HISTORY The .Nm command appeared in x 4.0 .