mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-24 11:29:10 +00:00
267 lines
7.6 KiB
Groff
267 lines
7.6 KiB
Groff
.\" 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$
|
|
.\"
|
|
.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 .
|
|
.Pp
|
|
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:
|
|
.Pp
|
|
.Bl -bullet -compact
|
|
.It
|
|
Scripts are only executed if their
|
|
.Xr basename 1
|
|
matches the shell globbing pattern
|
|
.Pa *.sh ,
|
|
and they are executable.
|
|
Any other files or directories present within the directory are silently
|
|
ignored.
|
|
.It
|
|
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.
|
|
.It
|
|
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
|
|
.Pa 100.foo
|
|
would be executed before
|
|
.Pa 200.bar ;
|
|
without the numeric prefixes the opposite would be true.
|
|
.El
|
|
.Pp
|
|
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).
|
|
.Pp
|
|
The system initialization scripts can execute scripts from multiple
|
|
.Nm rc.d
|
|
directories.
|
|
The default locations are
|
|
.Pa /usr/local/etc/rc.d
|
|
and
|
|
.Pa /usr/X11R6/etc/rc.d ,
|
|
but these may be overridden with the
|
|
.Va local_startup
|
|
.Xr rc.conf 5
|
|
variable.
|
|
.Pp
|
|
.Nm Rc.shutdown
|
|
is the command script which contains any necessary commands
|
|
to be executed as the system is shut down.
|
|
.Pp
|
|
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.
|
|
.Pp
|
|
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
|
|
.Pa /tmp .
|
|
.Pp
|
|
.Nm Rc.serial
|
|
is used to set any special configurations for serial devices.
|
|
.Pp
|
|
.Nm Rc.pccard
|
|
is used to enable PC-cards.
|
|
.Pp
|
|
.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.
|
|
.Pp
|
|
.Nm Rc.firewall
|
|
is used to configure rules for the kernel based firewall
|
|
service.
|
|
It has several possible options:
|
|
.Pp
|
|
.Bl -tag -width "fBfilename" -compact -offset indent
|
|
.It open
|
|
will allow anyone in.
|
|
.It client
|
|
will try to protect just this machine.
|
|
.It simple
|
|
will try to protect a whole network.
|
|
.It closed
|
|
totally disables IP services except via lo0 interface.
|
|
.It UNKNOWN
|
|
disables the loading of firewall rules.
|
|
.It filename
|
|
will load the rules in the given filename (full path required).
|
|
.El
|
|
.Pp
|
|
.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.
|
|
.Pp
|
|
.Nm Rc.<arch>
|
|
runs architecture specific programs.
|
|
.Pp
|
|
.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.
|
|
.Pp
|
|
Following tradition, the startup files reside in
|
|
.Pa /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.
|
|
.Bd -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
|
|
.Pp
|
|
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
|
|
.Bx 4.0 .
|