1afe61c15SRodney W. Grimes.\" Copyright (c) 1980, 1991, 1993 2afe61c15SRodney W. Grimes.\" The Regents of the University of California. All rights reserved. 3afe61c15SRodney W. Grimes.\" 454e347fbSGordon Tetlow.\" Portions of this manual page are Copyrighted by 554e347fbSGordon Tetlow.\" The NetBSD Foundation. 654e347fbSGordon Tetlow.\" 7afe61c15SRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without 8afe61c15SRodney W. Grimes.\" modification, are permitted provided that the following conditions 9afe61c15SRodney W. Grimes.\" are met: 10afe61c15SRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright 11afe61c15SRodney W. Grimes.\" notice, this list of conditions and the following disclaimer. 12afe61c15SRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright 13afe61c15SRodney W. Grimes.\" notice, this list of conditions and the following disclaimer in the 14afe61c15SRodney W. Grimes.\" documentation and/or other materials provided with the distribution. 15afe61c15SRodney W. Grimes.\" 3. All advertising materials mentioning features or use of this software 16afe61c15SRodney W. Grimes.\" must display the following acknowledgement: 17afe61c15SRodney W. Grimes.\" This product includes software developed by the University of 18afe61c15SRodney W. Grimes.\" California, Berkeley and its contributors. 19afe61c15SRodney W. Grimes.\" 4. Neither the name of the University nor the names of its contributors 20afe61c15SRodney W. Grimes.\" may be used to endorse or promote products derived from this software 21afe61c15SRodney W. Grimes.\" without specific prior written permission. 22afe61c15SRodney W. Grimes.\" 23afe61c15SRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24afe61c15SRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25afe61c15SRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26afe61c15SRodney W. Grimes.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27afe61c15SRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28afe61c15SRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29afe61c15SRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30afe61c15SRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31afe61c15SRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32afe61c15SRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33afe61c15SRodney W. Grimes.\" SUCH DAMAGE. 34afe61c15SRodney W. Grimes.\" 35afe61c15SRodney W. Grimes.\" @(#)rc.8 8.2 (Berkeley) 12/11/93 367f3dea24SPeter Wemm.\" $FreeBSD$ 37afe61c15SRodney W. Grimes.\" 3854e347fbSGordon Tetlow.Dd November 4, 2002 39afe61c15SRodney W. Grimes.Dt RC 8 403d45e180SRuslan Ermilov.Os 41afe61c15SRodney W. Grimes.Sh NAME 42afe61c15SRodney W. Grimes.Nm rc 43d962d52aSRuslan Ermilov.Nd command scripts for auto-reboot and daemon startup 44afe61c15SRodney W. Grimes.Sh SYNOPSIS 454b66483fSRuslan Ermilov.Nm 46e4f980d3SJordan K. Hubbard.Nm rc.conf 47e4f980d3SJordan K. Hubbard.Nm rc.conf.local 48d962d52aSRuslan Ermilov.Nm rc.d/ 49e4f980d3SJordan K. Hubbard.Nm rc.firewall 50afe61c15SRodney W. Grimes.Nm rc.local 51e4f980d3SJordan K. Hubbard.Nm rc.shutdown 5254e347fbSGordon Tetlow.Nm rc.subr 53afe61c15SRodney W. Grimes.Sh DESCRIPTION 548d74f63dSPhilippe CharnierThe 558d74f63dSPhilippe Charnier.Nm 5654e347fbSGordon Tetlowutility is the command script which controls the automatic boot process 5754e347fbSGordon Tetlowafter being called by 5854e347fbSGordon Tetlow.Xr init 8 . 5954e347fbSGordon TetlowThe 60afe61c15SRodney W. Grimes.Nm rc.local 6154e347fbSGordon Tetlowscript contains commands which are pertinent only 62d962d52aSRuslan Ermilovto a specific site. 63d962d52aSRuslan ErmilovTypically, the 64d962d52aSRuslan Ermilov.Pa /usr/local/etc/rc.d/ 6554e347fbSGordon Tetlowmechanism is used instead of 6654e347fbSGordon Tetlow.Nm rc.local 6754e347fbSGordon Tetlowthese days but if 6854e347fbSGordon Tetlowyou want to use 69d962d52aSRuslan Ermilov.Nm rc.local , 70d962d52aSRuslan Ermilovit is still supported. 71d962d52aSRuslan ErmilovIn this case, it should source 72d962d52aSRuslan Ermilov.Pa /etc/rc.conf 7354e347fbSGordon Tetlowand contain additional custom startup code for your system. 7454e347fbSGordon TetlowThe best way to handle 75d962d52aSRuslan Ermilov.Nm rc.local , 7654e347fbSGordon Tetlowhowever, is to separate it out into 77d962d52aSRuslan Ermilov.Nm rc.d/ 78d962d52aSRuslan Ermilovstyle scripts and place them under 79d962d52aSRuslan Ermilov.Pa /usr/local/etc/rc.d/ . 808d74f63dSPhilippe CharnierThe 818d74f63dSPhilippe Charnier.Nm rc.conf 828d74f63dSPhilippe Charnierfile contains the global system configuration information referenced 8354e347fbSGordon Tetlowby the startup scripts, while 84e4f980d3SJordan K. Hubbard.Nm rc.conf.local 856575e6daSRuslan Ermilovcontains the local system configuration. 866575e6daSRuslan ErmilovSee 8754e347fbSGordon Tetlow.Xr rc.conf 5 8854e347fbSGordon Tetlowfor more information. 89e4f980d3SJordan K. Hubbard.Pp 9091e06c00SBen SmithurstThe 91d962d52aSRuslan Ermilov.Nm rc.d/ 9291e06c00SBen Smithurstdirectories contain scripts which will be automatically 9391e06c00SBen Smithurstexecuted at boot time and shutdown time. 94d962d52aSRuslan Ermilov.Ss Operation of Nm 9554e347fbSGordon Tetlow.Bl -enum 9654e347fbSGordon Tetlow.It 9754e347fbSGordon TetlowSource 9854e347fbSGordon Tetlow.Pa /etc/rc.subr 9954e347fbSGordon Tetlowto load various 10054e347fbSGordon Tetlow.Xr rc.subr 8 10154e347fbSGordon Tetlowshell functions to use. 10254e347fbSGordon Tetlow.It 10354e347fbSGordon TetlowIf autobooting, set 104d962d52aSRuslan Ermilov.Va autoboot Ns = Ns Li yes 10554e347fbSGordon Tetlowand enable a flag 106d962d52aSRuslan Ermilov.Pq Va rc_fast Ns = Ns Li yes , 10754e347fbSGordon Tetlowwhich prevents the 108d962d52aSRuslan Ermilov.Nm rc.d/ 10954e347fbSGordon Tetlowscripts from performing the check for already running processes 11054e347fbSGordon Tetlow(thus speeding up the boot process). 11154e347fbSGordon TetlowThis 112d962d52aSRuslan Ermilov.Va rc_fast Ns = Ns Li yes 113d962d52aSRuslan Ermilovspeedup will not occur when 11454e347fbSGordon Tetlow.Nm 11554e347fbSGordon Tetlowis started up after exiting the single-user shell. 11654e347fbSGordon Tetlow.It 11754e347fbSGordon TetlowInvoke 11854e347fbSGordon Tetlow.Xr rcorder 8 11954e347fbSGordon Tetlowto order the files in 12054e347fbSGordon Tetlow.Pa /etc/rc.d/ 12154e347fbSGordon Tetlowthat do not have a 122d962d52aSRuslan Ermilov.Dq Li nostart 12354e347fbSGordon Tetlowkeyword (refer to 124d962d52aSRuslan Ermilov.Xr rcorder 8 Ns 's 12554e347fbSGordon Tetlow.Fl s 12654e347fbSGordon Tetlowflag), 127d962d52aSRuslan Ermilovand assign the result to a variable. 12854e347fbSGordon Tetlow.It 129d962d52aSRuslan ErmilovCall each script in turn using 130d962d52aSRuslan Ermilov.Fn run_rc_script 131d962d52aSRuslan Ermilov(from 13254e347fbSGordon Tetlow.Xr rc.subr 8 ) , 13354e347fbSGordon Tetlowwhich sets 134d962d52aSRuslan Ermilov.Va $1 13554e347fbSGordon Tetlowto 136d962d52aSRuslan Ermilov.Dq Li start , 13754e347fbSGordon Tetlowand sources the script in a subshell. 13854e347fbSGordon TetlowIf the script has a 139d962d52aSRuslan Ermilov.Pa .sh 14054e347fbSGordon Tetlowsuffix then it is sourced directly into the current shell. 14154e347fbSGordon Tetlow.El 142d962d52aSRuslan Ermilov.Ss Operation of Nm rc.shutdown 14354e347fbSGordon Tetlow.Bl -enum 14454e347fbSGordon Tetlow.It 14554e347fbSGordon TetlowSource 14654e347fbSGordon Tetlow.Pa /etc/rc.subr 14754e347fbSGordon Tetlowto load various 14854e347fbSGordon Tetlow.Xr rc.subr 8 14954e347fbSGordon Tetlowshell functions to use. 15054e347fbSGordon Tetlow.It 15154e347fbSGordon TetlowInvoke 15254e347fbSGordon Tetlow.Xr rcorder 8 15354e347fbSGordon Tetlowto order the files in 15454e347fbSGordon Tetlow.Pa /etc/rc.d/ 15554e347fbSGordon Tetlowthat have a 156d962d52aSRuslan Ermilov.Dq Li shutdown 15754e347fbSGordon Tetlowkeyword (refer to 158d962d52aSRuslan Ermilov.Xr rcorder 8 Ns 's 15954e347fbSGordon Tetlow.Fl k 16054e347fbSGordon Tetlowflag), 161d962d52aSRuslan Ermilovreverse that order, and assign the result to a variable. 16254e347fbSGordon Tetlow.It 163d962d52aSRuslan ErmilovCall each script in turn using 164d962d52aSRuslan Ermilov.Fn run_rc_script 165d962d52aSRuslan Ermilov(from 16654e347fbSGordon Tetlow.Xr rc.subr 8 ) , 16754e347fbSGordon Tetlowwhich sets 168d962d52aSRuslan Ermilov.Va $1 16954e347fbSGordon Tetlowto 170d962d52aSRuslan Ermilov.Dq Li stop , 17154e347fbSGordon Tetlowand sources the script in a subshell. 17254e347fbSGordon TetlowIf the script has a 173d962d52aSRuslan Ermilov.Pa .sh 17454e347fbSGordon Tetlowsuffix then it is sourced directly into the current shell. 17554e347fbSGordon Tetlow.El 176d962d52aSRuslan Ermilov.Ss Contents of Nm rc.d/ 17754e347fbSGordon Tetlow.Nm rc.d/ 17854e347fbSGordon Tetlowis located in 179d962d52aSRuslan Ermilov.Pa /etc/rc.d/ . 18054e347fbSGordon TetlowThe following file naming conventions are currently used in 18154e347fbSGordon Tetlow.Nm rc.d/ : 182d962d52aSRuslan Ermilov.Bl -tag -width ".Pa ALLUPPERCASE" -offset indent 18354e347fbSGordon Tetlow.It Pa ALLUPPERCASE 18454e347fbSGordon TetlowScripts that are 185d962d52aSRuslan Ermilov.Dq placeholders 18654e347fbSGordon Tetlowto ensure that certain operations are performed before others. 18754e347fbSGordon TetlowIn order of startup, these are: 188d962d52aSRuslan Ermilov.Bl -tag -width ".Pa NETWORKING" 18954e347fbSGordon Tetlow.It Pa NETWORKING 19054e347fbSGordon TetlowEnsure basic network services are running, including general 191d962d52aSRuslan Ermilovnetwork configuration 192d962d52aSRuslan Ermilov.Pq Pa network1 , network2 , network3 . 19354e347fbSGordon Tetlow.It Pa SERVERS 19454e347fbSGordon TetlowEnsure basic services (such as 195d962d52aSRuslan Ermilov.Pa NETWORKING , ppp-user , syslogd , 19654e347fbSGordon Tetlowand 19754e347fbSGordon Tetlow.Pa isdnd ) 19854e347fbSGordon Tetlowexist for services that start early (such as 19954e347fbSGordon Tetlow.Pa named ) , 200d962d52aSRuslan Ermilovbecause they are required by 20154e347fbSGordon Tetlow.Pa DAEMON 20254e347fbSGordon Tetlowbelow. 20354e347fbSGordon Tetlow.It Pa DAEMON 20454e347fbSGordon TetlowCheck-point before all general purpose daemons such as 20554e347fbSGordon Tetlow.Pa lpd 20654e347fbSGordon Tetlowand 20754e347fbSGordon Tetlow.Pa ntpd . 20854e347fbSGordon Tetlow.It Pa LOGIN 20954e347fbSGordon TetlowCheck-point before user login services 21054e347fbSGordon Tetlow.Pa ( inetd 21154e347fbSGordon Tetlowand 21254e347fbSGordon Tetlow.Pa sshd ) , 21354e347fbSGordon Tetlowas well as services which might run commands as users 21454e347fbSGordon Tetlow.Pa ( cron 21554e347fbSGordon Tetlowand 21654e347fbSGordon Tetlow.Pa sendmail ) . 21754e347fbSGordon Tetlow.El 21854e347fbSGordon Tetlow.It Pa foo.sh 21954e347fbSGordon TetlowScripts that are to be sourced into the current shell rather than a subshell 22054e347fbSGordon Tetlowhave a 221d962d52aSRuslan Ermilov.Pa .sh 22254e347fbSGordon Tetlowsuffix. 22354e347fbSGordon TetlowExtreme care must be taken in using this, as the startup sequence will 22454e347fbSGordon Tetlowterminate if the script does. 22554e347fbSGordon Tetlow.It Pa bar 22654e347fbSGordon TetlowScripts that are sourced in a subshell. 22754e347fbSGordon TetlowThese can stop the boot if necessary with the following shell 22854e347fbSGordon Tetlowcommands: 229d962d52aSRuslan Ermilov.Bd -literal -offset indent 23054e347fbSGordon Tetlowif [ "$autoboot" = yes ]; then 23154e347fbSGordon Tetlow kill -TERM $$ 23254e347fbSGordon Tetlowfi 23354e347fbSGordon Tetlowexit 1 23454e347fbSGordon Tetlow.Ed 23554e347fbSGordon Tetlow.Pp 23654e347fbSGordon TetlowNote that this should be used extremely sparingly! 23754e347fbSGordon Tetlow.El 23854e347fbSGordon Tetlow.Pp 23954e347fbSGordon TetlowEach script should contain 24054e347fbSGordon Tetlow.Xr rcorder 8 24154e347fbSGordon Tetlowkeywords, especially an appropriate 242d962d52aSRuslan Ermilov.Dq Li PROVIDE 24354e347fbSGordon Tetlowentry, and if necessary 244d962d52aSRuslan Ermilov.Dq Li REQUIRE 24554e347fbSGordon Tetlowand 246d962d52aSRuslan Ermilov.Dq Li BEFORE 247d962d52aSRuslan Ermilovkeywords. 24854e347fbSGordon Tetlow.Pp 24954e347fbSGordon TetlowEach script is expected to support at least the following arguments, which 250d962d52aSRuslan Ermilovare automatically supported if it uses the 251d962d52aSRuslan Ermilov.Fn run_rc_command 252d962d52aSRuslan Ermilovfunction: 253d962d52aSRuslan Ermilov.Bl -tag -width ".Cm restart" -offset indent 254d962d52aSRuslan Ermilov.It Cm start 25554e347fbSGordon TetlowStart the service. 25654e347fbSGordon TetlowThis should check that the service is to be started as specified by 25754e347fbSGordon Tetlow.Xr rc.conf 5 . 25854e347fbSGordon TetlowAlso checks if the service is already running and refuses to start if 25954e347fbSGordon Tetlowit is. 26054e347fbSGordon TetlowThis latter check is not performed by standard 26154e347fbSGordon Tetlow.Fx 26254e347fbSGordon Tetlowscripts if the system is starting directly to multi-user mode, to 26354e347fbSGordon Tetlowspeed up the boot process. 26454e347fbSGordon TetlowIf 265d962d52aSRuslan Ermilov.Cm forcestart 26654e347fbSGordon Tetlowis given, ignore the 26754e347fbSGordon Tetlow.Xr rc.conf 5 26854e347fbSGordon Tetlowcheck and start anyway. 269d962d52aSRuslan Ermilov.It Cm stop 27054e347fbSGordon TetlowIf the service is to be started as specified by 27154e347fbSGordon Tetlow.Xr rc.conf 5 , 27254e347fbSGordon Tetlowstop the service. 273d962d52aSRuslan ErmilovThis should check that the service is running and complain if it is not. 27454e347fbSGordon TetlowIf 275d962d52aSRuslan Ermilov.Cm forcestop 27654e347fbSGordon Tetlowis given, ignore the 27754e347fbSGordon Tetlow.Xr rc.conf 5 27854e347fbSGordon Tetlowcheck and attempt to stop. 279d962d52aSRuslan Ermilov.It Cm restart 28054e347fbSGordon TetlowPerform a 281d962d52aSRuslan Ermilov.Cm stop 28254e347fbSGordon Tetlowthen a 283d962d52aSRuslan Ermilov.Cm start . 284d962d52aSRuslan Ermilov.It Cm status 28554e347fbSGordon TetlowIf the script starts a process (rather than performing a one-off 28654e347fbSGordon Tetlowoperation), show the status of the process. 287d962d52aSRuslan ErmilovOtherwise it is not necessary to support this argument. 28854e347fbSGordon TetlowDefaults to displaying the process ID of the program (if running). 289d962d52aSRuslan Ermilov.It Cm poll 29054e347fbSGordon TetlowIf the script starts a process (rather than performing a one-off 29154e347fbSGordon Tetlowoperation), wait for the command to exit. 292d962d52aSRuslan ErmilovOtherwise it is not necessary to support this argument. 293d962d52aSRuslan Ermilov.It Cm rcvar 29454e347fbSGordon TetlowDisplay which 29554e347fbSGordon Tetlow.Xr rc.conf 5 29654e347fbSGordon Tetlowvariables are used to control the startup of the service (if any). 29754e347fbSGordon Tetlow.El 29854e347fbSGordon Tetlow.Pp 29954e347fbSGordon TetlowIf a script must implement additional commands it can list them in 30054e347fbSGordon Tetlowthe 301d962d52aSRuslan Ermilov.Va extra_commands 302d962d52aSRuslan Ermilovvariable, and define their actions in a variable constructed from 30354e347fbSGordon Tetlowthe command name (see the 30454e347fbSGordon Tetlow.Sx EXAMPLES 30554e347fbSGordon Tetlowsection). 30654e347fbSGordon Tetlow.Pp 30754e347fbSGordon TetlowThe following key points apply to old-style scripts in 308d962d52aSRuslan Ermilov.Pa /usr/local/etc/rc.d/ : 30991e06c00SBen Smithurst.Pp 310d962d52aSRuslan Ermilov.Bl -bullet 31191e06c00SBen Smithurst.It 31291e06c00SBen SmithurstScripts are only executed if their 31391e06c00SBen Smithurst.Xr basename 1 31491e06c00SBen Smithurstmatches the shell globbing pattern 31591e06c00SBen Smithurst.Pa *.sh , 31691e06c00SBen Smithurstand they are executable. 31791e06c00SBen SmithurstAny other files or directories present within the directory are silently 31891e06c00SBen Smithurstignored. 31991e06c00SBen Smithurst.It 32091e06c00SBen SmithurstWhen a script is executed at boot time, it is passed the string 321d962d52aSRuslan Ermilov.Dq Li start 32291e06c00SBen Smithurstas its first and only argument. 32391e06c00SBen SmithurstAt shutdown time, it is passed the string 324d962d52aSRuslan Ermilov.Dq Li stop 32591e06c00SBen Smithurstas its first and only argument. 32691e06c00SBen SmithurstAll 327d962d52aSRuslan Ermilov.Nm rc.d/ 328d4bbfee2SJens Schweikhardtscripts are expected to handle these arguments appropriately. 32991e06c00SBen SmithurstIf no action needs to be taken at a given time 330d962d52aSRuslan Ermilov(either boot time or shutdown time), 33191e06c00SBen Smithurstthe script should exit successfully and without producing an error message. 33291e06c00SBen Smithurst.It 33391e06c00SBen SmithurstThe scripts within each directory are executed in lexicographical order. 33491e06c00SBen SmithurstIf a specific order is required, 33591e06c00SBen Smithurstnumbers may be used as a prefix to the existing filenames, 33691e06c00SBen Smithurstso for example 33791e06c00SBen Smithurst.Pa 100.foo 33891e06c00SBen Smithurstwould be executed before 33991e06c00SBen Smithurst.Pa 200.bar ; 34091e06c00SBen Smithurstwithout the numeric prefixes the opposite would be true. 34154e347fbSGordon Tetlow.It 34291e06c00SBen SmithurstThe output from each script is traditionally a space character, 34391e06c00SBen Smithurstfollowed by the name of the software package being started or shut down, 34491e06c00SBen Smithurst.Em without 34591e06c00SBen Smithursta trailing newline character (see the 34691e06c00SBen Smithurst.Sx EXAMPLES 34791e06c00SBen Smithurstsection). 34854e347fbSGordon Tetlow.El 349d962d52aSRuslan Ermilov.Sh SCRIPTS OF INTEREST 35054e347fbSGordon TetlowWhen an automatic reboot is in progress, 35154e347fbSGordon Tetlow.Nm 35254e347fbSGordon Tetlowis invoked with the argument 353d962d52aSRuslan Ermilov.Cm autoboot . 35454e347fbSGordon TetlowOne of the scripts run from 355d962d52aSRuslan Ermilov.Pa /etc/rc.d/ 35654e347fbSGordon Tetlowis 35754e347fbSGordon Tetlow.Pa /etc/rc.d/fsck . 35854e347fbSGordon TetlowThis script runs 35954e347fbSGordon Tetlow.Xr fsck 8 36054e347fbSGordon Tetlowwith option 36154e347fbSGordon Tetlow.Fl p 36254e347fbSGordon Tetlowand 36354e347fbSGordon Tetlow.Fl F 364d962d52aSRuslan Ermilovto 365d962d52aSRuslan Ermilov.Dq preen 366d962d52aSRuslan Ermilovall the disks of minor inconsistencies resulting 367d962d52aSRuslan Ermilovfrom the last system shutdown. 368d962d52aSRuslan ErmilovIf this fails, then checks/repairs of serious inconsistencies 369d962d52aSRuslan Ermilovcaused by hardware or software failure will be performed 370d962d52aSRuslan Ermilovin the background at the end of the booting process. 371d962d52aSRuslan ErmilovIf 372d962d52aSRuslan Ermilov.Cm autoboot 373d962d52aSRuslan Ermilovis not set, when going from single-user to multi-user mode for example, 374d962d52aSRuslan Ermilovthe script does not do anything. 37591e06c00SBen Smithurst.Pp 37654e347fbSGordon TetlowThe 37754e347fbSGordon Tetlow.Nm rc.early 37854e347fbSGordon Tetlowscript is run very early in the startup process, immediately before the 379d962d52aSRuslan Ermilovfile system check. 380d962d52aSRuslan ErmilovThe 38154e347fbSGordon Tetlow.Nm rc.early 382d962d52aSRuslan Ermilovscript is deprecated. 383d962d52aSRuslan ErmilovAny commands in this 38454e347fbSGordon Tetlowfile should be separated out into 385d962d52aSRuslan Ermilov.Nm rc.d/ 38654e347fbSGordon Tetlowstyle scripts and integrated into the 387d962d52aSRuslan Ermilov.Nm 38854e347fbSGordon Tetlowsystem. 38954e347fbSGordon Tetlow.Pp 39054e347fbSGordon TetlowThe 391d962d52aSRuslan Ermilov.Pa /etc/rc.d/local 39254e347fbSGordon Tetlowscript can execute scripts from multiple 393d962d52aSRuslan Ermilov.Nm rc.d/ 39491e06c00SBen Smithurstdirectories. 39591e06c00SBen SmithurstThe default locations are 396d962d52aSRuslan Ermilov.Pa /usr/local/etc/rc.d/ 39791e06c00SBen Smithurstand 398d962d52aSRuslan Ermilov.Pa /usr/X11R6/etc/rc.d/ , 39991e06c00SBen Smithurstbut these may be overridden with the 40091e06c00SBen Smithurst.Va local_startup 40191e06c00SBen Smithurst.Xr rc.conf 5 40291e06c00SBen Smithurstvariable. 40391e06c00SBen Smithurst.Pp 4048d74f63dSPhilippe CharnierThe 405d962d52aSRuslan Ermilov.Pa /etc/rc.d/serial 4068d74f63dSPhilippe Charnierscript is used to set any special configurations for serial devices. 407afe61c15SRodney W. Grimes.Pp 4088d74f63dSPhilippe CharnierThe 409d962d52aSRuslan Ermilov.Pa /etc/rc.d/network* 41054e347fbSGordon Tetlowscripts are used to start the network. 411d962d52aSRuslan ErmilovThe network is started in several passes. 41254e347fbSGordon TetlowThe first pass, 413d962d52aSRuslan Ermilov.Pa /etc/rc.d/network1 , 41454e347fbSGordon Tetlowsets the hostname and domainname and configures the network 415d962d52aSRuslan Ermilovinterfaces. 416d962d52aSRuslan ErmilovThe 417d962d52aSRuslan Ermilov.Pa /etc/rc.d/network2 418d962d52aSRuslan Ermilovscript starts routing and sets routing options. 419d962d52aSRuslan ErmilovThe 420d962d52aSRuslan Ermilov.Pa /etc/rc.d/network3 421d962d52aSRuslan Ermilovscript sets additional networking options. 422d962d52aSRuslan ErmilovFinally, the 423d962d52aSRuslan Ermilov.Pa /etc/rc.d/network_ipv6 42454e347fbSGordon Tetlowscript configures IPv6 interfaces and options. 425e4f980d3SJordan K. Hubbard.Pp 4268d74f63dSPhilippe CharnierThe 4278d74f63dSPhilippe Charnier.Nm rc.firewall 4288d74f63dSPhilippe Charnierscript is used to configure rules for the kernel based firewall 4291111b49cSSheldon Hearnservice. 4301111b49cSSheldon HearnIt has several possible options: 431e4f980d3SJordan K. Hubbard.Pp 432d962d52aSRuslan Ermilov.Bl -tag -width ".Ar filename" -compact -offset indent 433d962d52aSRuslan Ermilov.It Cm open 434d962d52aSRuslan Ermilovwill allow anyone in 435d962d52aSRuslan Ermilov.It Cm client 436d962d52aSRuslan Ermilovwill try to protect just this machine 437d962d52aSRuslan Ermilov.It Cm simple 438d962d52aSRuslan Ermilovwill try to protect a whole network 439d962d52aSRuslan Ermilov.It Cm closed 440d962d52aSRuslan Ermilovtotally disables IP services except via 441d962d52aSRuslan Ermilov.Pa lo0 442d962d52aSRuslan Ermilovinterface 443d962d52aSRuslan Ermilov.It Cm UNKNOWN 444d962d52aSRuslan Ermilovdisables the loading of firewall rules 445d962d52aSRuslan Ermilov.It Ar filename 446e4f980d3SJordan K. Hubbardwill load the rules in the given filename (full path required). 447e4f980d3SJordan K. Hubbard.El 448e4f980d3SJordan K. Hubbard.Pp 4498d74f63dSPhilippe CharnierThe 450d962d52aSRuslan Ermilov.Pa /etc/rc.d/atm* 45154e347fbSGordon Tetlowscripts are used to configure ATM network interfaces. 4527d5c779cSPoul-Henning KampThe interfaces are configured in three passes. 4537d5c779cSPoul-Henning KampThe first pass performs the initial interface configuration. 4547d5c779cSPoul-Henning KampThe second pass completes the interface configuration and defines PVCs and 4557d5c779cSPoul-Henning Kamppermanent ATMARP entries. 4567d5c779cSPoul-Henning KampThe third pass starts any ATM daemons. 4577d5c779cSPoul-Henning Kamp.Pp 45854e347fbSGordon TetlowMost daemons, including network related daemons, have their own script in 459d962d52aSRuslan Ermilov.Pa /etc/rc.d/ , 46054e347fbSGordon Tetlowwhich can be used to start, stop, and check the status of the service. 461e4f980d3SJordan K. Hubbard.Pp 46254e347fbSGordon TetlowAny architecture specific scripts, such as 46354e347fbSGordon Tetlow.Pa /etc/rc.d/apm 46454e347fbSGordon Tetlowfor example, specifically check that they are on that architecture 46554e347fbSGordon Tetlowbefore starting the daemon. 466e4f980d3SJordan K. Hubbard.Pp 46754e347fbSGordon TetlowFollowing tradition, all startup files reside in 468afe61c15SRodney W. Grimes.Pa /etc . 4699cbda590SRuslan Ermilov.Sh FILES 4709cbda590SRuslan Ermilov.Bl -tag -compact 4719cbda590SRuslan Ermilov.It Pa /etc/rc 4729cbda590SRuslan Ermilov.It Pa /etc/rc.conf 4739cbda590SRuslan Ermilov.It Pa /etc/rc.conf.local 4749cbda590SRuslan Ermilov.It Pa /etc/rc.d/ 4759cbda590SRuslan Ermilov.It Pa /etc/rc.firewall 4769cbda590SRuslan Ermilov.It Pa /etc/rc.local 4779cbda590SRuslan Ermilov.It Pa /etc/rc.shutdown 4789cbda590SRuslan Ermilov.It Pa /etc/rc.subr 4799cbda590SRuslan Ermilov.It Pa /var/run/dmesg.boot 480a3f9c9fcSRuslan Ermilov.Xr dmesg 8 4819cbda590SRuslan Ermilovresults soon after the 4829cbda590SRuslan Ermilov.Nm 4839cbda590SRuslan Ermilovprocess begins. 484a3f9c9fcSRuslan ErmilovUseful when 485a3f9c9fcSRuslan Ermilov.Xr dmesg 8 486a3f9c9fcSRuslan Ermilovbuffer in the kernel no longer has this information. 4879cbda590SRuslan Ermilov.El 48891e06c00SBen Smithurst.Sh EXAMPLES 48954e347fbSGordon TetlowThe following is a minimal 490d962d52aSRuslan Ermilov.Nm rc.d/ 491d962d52aSRuslan Ermilovstyle script. 492d962d52aSRuslan ErmilovMost scripts require little more than the following. 49354e347fbSGordon Tetlow.Bd -literal -offset indent 49454e347fbSGordon Tetlow#!/bin/sh 49554e347fbSGordon Tetlow# 49654e347fbSGordon Tetlow 49754e347fbSGordon Tetlow# PROVIDE: foo 49854e347fbSGordon Tetlow# REQUIRE: bar_service_required_to_precede_foo 49954e347fbSGordon Tetlow# BEFORE: baz_service_requiring_foo_to_precede_it 50054e347fbSGordon Tetlow 501d962d52aSRuslan Ermilov\&. /etc/rc.subr 50254e347fbSGordon Tetlow 50354e347fbSGordon Tetlowname="foo" 50454e347fbSGordon Tetlowrcvar=`set_rcvar` 50554e347fbSGordon Tetlowcommand="/usr/local/bin/foo" 50654e347fbSGordon Tetlow 50754e347fbSGordon Tetlowload_rc_config $name 50854e347fbSGordon Tetlowrun_rc_command "$1" 50954e347fbSGordon Tetlow.Ed 51054e347fbSGordon Tetlow.Pp 511d962d52aSRuslan ErmilovCertain scripts may want to provide enhanced functionality. 512d962d52aSRuslan ErmilovThe user may access this functionality through additional commands. 513d962d52aSRuslan ErmilovThe script may list and define as many commands at it needs. 51454e347fbSGordon Tetlow.Bd -literal -offset indent 51554e347fbSGordon Tetlow#!/bin/sh 51654e347fbSGordon Tetlow# 51754e347fbSGordon Tetlow 51854e347fbSGordon Tetlow# PROVIDE: foo 51954e347fbSGordon Tetlow# REQUIRE: bar_service_required_to_precede_foo 52054e347fbSGordon Tetlow# BEFORE: baz_service_requiring_foo_to_precede_it 52154e347fbSGordon Tetlow 522d962d52aSRuslan Ermilov\&. /etc/rc.subr 52354e347fbSGordon Tetlow 52454e347fbSGordon Tetlowname="foo" 52554e347fbSGordon Tetlowrcvar=`set_rcvar` 52654e347fbSGordon Tetlowcommand="/usr/local/bin/foo" 52754e347fbSGordon Tetlowextra_commands="nop hello" 52854e347fbSGordon Tetlowhello_cmd="echo Hello World." 52954e347fbSGordon Tetlownop_cmd="do_nop" 53054e347fbSGordon Tetlow 53154e347fbSGordon Tetlowdo_nop() 53254e347fbSGordon Tetlow{ 53354e347fbSGordon Tetlow echo "I do nothing." 53454e347fbSGordon Tetlow} 53554e347fbSGordon Tetlow 53654e347fbSGordon Tetlowload_rc_config $name 53754e347fbSGordon Tetlowrun_rc_command "$1" 53854e347fbSGordon Tetlow.Ed 53954e347fbSGordon Tetlow.Pp 54054e347fbSGordon TetlowThe following is a simple, hypothetical example of an old-style 541d962d52aSRuslan Ermilov.Pa /usr/local/etc/rc.d/ 54291e06c00SBen Smithurstscript, 54391e06c00SBen Smithurstwhich would start a daemon at boot time, 54491e06c00SBen Smithurstand kill it at shutdown time. 54591e06c00SBen Smithurst.Bd -literal -offset indent 54691e06c00SBen Smithurst#!/bin/sh - 54791e06c00SBen Smithurst# 54891e06c00SBen Smithurst# initialization/shutdown script for foobar package 54991e06c00SBen Smithurst 55091e06c00SBen Smithurstcase "$1" in 55191e06c00SBen Smithurststart) 55291e06c00SBen Smithurst /usr/local/sbin/foo -d && echo -n ' foo' 55391e06c00SBen Smithurst ;; 55491e06c00SBen Smithurststop) 55591e06c00SBen Smithurst kill `cat /var/run/foo.pid` && echo -n ' foo' 55691e06c00SBen Smithurst ;; 55791e06c00SBen Smithurst*) 55891e06c00SBen Smithurst echo "unknown option: $1 - should be 'start' or 'stop'" >&2 55991e06c00SBen Smithurst ;; 56091e06c00SBen Smithurstesac 56191e06c00SBen Smithurst.Ed 56291e06c00SBen Smithurst.Pp 56391e06c00SBen SmithurstAs all processes are killed by 56491e06c00SBen Smithurst.Xr init 8 56591e06c00SBen Smithurstat shutdown, the explicit 56691e06c00SBen Smithurst.Xr kill 1 56791e06c00SBen Smithurstis unnecessary, but is often included. 568afe61c15SRodney W. Grimes.Sh SEE ALSO 56991e06c00SBen Smithurst.Xr kill 1 , 570e4f980d3SJordan K. Hubbard.Xr rc.conf 5 , 571afe61c15SRodney W. Grimes.Xr init 8 , 57254e347fbSGordon Tetlow.Xr rcorder 8 , 5731c85060aSRuslan Ermilov.Xr rc.subr 8 , 574afe61c15SRodney W. Grimes.Xr reboot 8 , 575afe61c15SRodney W. Grimes.Xr savecore 8 576afe61c15SRodney W. Grimes.Sh HISTORY 577afe61c15SRodney W. GrimesThe 578afe61c15SRodney W. Grimes.Nm 5798d74f63dSPhilippe Charnierutility appeared in 580afe61c15SRodney W. Grimes.Bx 4.0 . 581