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.\" 389eb99781SDoug Barton.Dd December 19, 2005 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 TetlowIf autobooting, set 98d962d52aSRuslan Ermilov.Va autoboot Ns = Ns Li yes 9954e347fbSGordon Tetlowand enable a flag 100d962d52aSRuslan Ermilov.Pq Va rc_fast Ns = Ns Li yes , 10154e347fbSGordon Tetlowwhich prevents the 102d962d52aSRuslan Ermilov.Nm rc.d/ 10354e347fbSGordon Tetlowscripts from performing the check for already running processes 10454e347fbSGordon Tetlow(thus speeding up the boot process). 10554e347fbSGordon TetlowThis 106d962d52aSRuslan Ermilov.Va rc_fast Ns = Ns Li yes 107d962d52aSRuslan Ermilovspeedup will not occur when 10854e347fbSGordon Tetlow.Nm 10954e347fbSGordon Tetlowis started up after exiting the single-user shell. 11054e347fbSGordon Tetlow.It 1119eb99781SDoug BartonDetermine whether the system is booting diskless, 1129eb99781SDoug Bartonand if so run the 1139eb99781SDoug Barton.Pa /etc/rc.initdiskless 1149eb99781SDoug Bartonscript. 1159eb99781SDoug Barton.It 1169eb99781SDoug BartonSource 1179eb99781SDoug Barton.Pa /etc/rc.subr 1189eb99781SDoug Bartonto load various 1199eb99781SDoug Barton.Xr rc.subr 8 1209eb99781SDoug Bartonshell functions to use. 1219eb99781SDoug Barton.It 1229eb99781SDoug BartonLoad the configuration files. 1239eb99781SDoug Barton.It 1249eb99781SDoug BartonDetermine if booting in a jail, 1259eb99781SDoug Bartonand add 12681ae4b8dSRuslan Ermilov.Dq Li nojail 1279eb99781SDoug Bartonto the list of KEYWORDS to skip in 1289eb99781SDoug Barton.Xr rcorder 8 . 1299eb99781SDoug Barton.It 13054e347fbSGordon TetlowInvoke 13154e347fbSGordon Tetlow.Xr rcorder 8 13254e347fbSGordon Tetlowto order the files in 13354e347fbSGordon Tetlow.Pa /etc/rc.d/ 13454e347fbSGordon Tetlowthat do not have a 135d962d52aSRuslan Ermilov.Dq Li nostart 1369eb99781SDoug BartonKEYWORD (refer to 137d962d52aSRuslan Ermilov.Xr rcorder 8 Ns 's 13854e347fbSGordon Tetlow.Fl s 1399eb99781SDoug Bartonflag). 14054e347fbSGordon Tetlow.It 141d962d52aSRuslan ErmilovCall each script in turn using 142d962d52aSRuslan Ermilov.Fn run_rc_script 143d962d52aSRuslan Ermilov(from 14454e347fbSGordon Tetlow.Xr rc.subr 8 ) , 14554e347fbSGordon Tetlowwhich sets 146d962d52aSRuslan Ermilov.Va $1 14754e347fbSGordon Tetlowto 148d962d52aSRuslan Ermilov.Dq Li start , 14954e347fbSGordon Tetlowand sources the script in a subshell. 15054e347fbSGordon TetlowIf the script has a 151d962d52aSRuslan Ermilov.Pa .sh 15254e347fbSGordon Tetlowsuffix then it is sourced directly into the current shell. 1539eb99781SDoug BartonStop processing when the script that is the value of the 1549eb99781SDoug Barton.Va $early_late_divider 1559eb99781SDoug Bartonhas been run. 1569eb99781SDoug Barton.It 1579eb99781SDoug BartonRe-run 1589eb99781SDoug Barton.Xr rcorder 8 , 1599eb99781SDoug Bartonthis time including the scripts in the 1609eb99781SDoug Barton.Va $local_startup 1619eb99781SDoug Bartondirectories. 1629eb99781SDoug BartonIgnore everything up to the 1639eb99781SDoug Barton.Va $early_late_divider , 1649eb99781SDoug Bartonthen start executing the scripts as described above. 16554e347fbSGordon Tetlow.El 166d962d52aSRuslan Ermilov.Ss Operation of Nm rc.shutdown 16754e347fbSGordon Tetlow.Bl -enum 16854e347fbSGordon Tetlow.It 16954e347fbSGordon TetlowSource 17054e347fbSGordon Tetlow.Pa /etc/rc.subr 17154e347fbSGordon Tetlowto load various 17254e347fbSGordon Tetlow.Xr rc.subr 8 17354e347fbSGordon Tetlowshell functions to use. 17454e347fbSGordon Tetlow.It 1759eb99781SDoug BartonLoad the configuration files. 1769eb99781SDoug Barton.It 17754e347fbSGordon TetlowInvoke 17854e347fbSGordon Tetlow.Xr rcorder 8 17954e347fbSGordon Tetlowto order the files in 18054e347fbSGordon Tetlow.Pa /etc/rc.d/ 1819eb99781SDoug Bartonand the 1829eb99781SDoug Barton.Va $local_startup 1839eb99781SDoug Bartondirectories 18454e347fbSGordon Tetlowthat have a 185d962d52aSRuslan Ermilov.Dq Li shutdown 1869eb99781SDoug BartonKEYWORD (refer to 187d962d52aSRuslan Ermilov.Xr rcorder 8 Ns 's 18854e347fbSGordon Tetlow.Fl k 18954e347fbSGordon Tetlowflag), 190d962d52aSRuslan Ermilovreverse that order, and assign the result to a variable. 19154e347fbSGordon Tetlow.It 192d962d52aSRuslan ErmilovCall each script in turn using 193d962d52aSRuslan Ermilov.Fn run_rc_script 194d962d52aSRuslan Ermilov(from 19554e347fbSGordon Tetlow.Xr rc.subr 8 ) , 19654e347fbSGordon Tetlowwhich sets 197d962d52aSRuslan Ermilov.Va $1 19854e347fbSGordon Tetlowto 199d962d52aSRuslan Ermilov.Dq Li stop , 20054e347fbSGordon Tetlowand sources the script in a subshell. 20154e347fbSGordon TetlowIf the script has a 202d962d52aSRuslan Ermilov.Pa .sh 20354e347fbSGordon Tetlowsuffix then it is sourced directly into the current shell. 20454e347fbSGordon Tetlow.El 205d962d52aSRuslan Ermilov.Ss Contents of Nm rc.d/ 20654e347fbSGordon Tetlow.Nm rc.d/ 20754e347fbSGordon Tetlowis located in 208d962d52aSRuslan Ermilov.Pa /etc/rc.d/ . 20954e347fbSGordon TetlowThe following file naming conventions are currently used in 21054e347fbSGordon Tetlow.Nm rc.d/ : 211d962d52aSRuslan Ermilov.Bl -tag -width ".Pa ALLUPPERCASE" -offset indent 21254e347fbSGordon Tetlow.It Pa ALLUPPERCASE 21354e347fbSGordon TetlowScripts that are 214d962d52aSRuslan Ermilov.Dq placeholders 21554e347fbSGordon Tetlowto ensure that certain operations are performed before others. 21654e347fbSGordon TetlowIn order of startup, these are: 217d962d52aSRuslan Ermilov.Bl -tag -width ".Pa NETWORKING" 21854e347fbSGordon Tetlow.It Pa NETWORKING 21954e347fbSGordon TetlowEnsure basic network services are running, including general 2209eb99781SDoug Bartonnetwork configuration. 22154e347fbSGordon Tetlow.It Pa SERVERS 2229eb99781SDoug BartonEnsure basic services 22354e347fbSGordon Tetlowexist for services that start early (such as 22454e347fbSGordon Tetlow.Pa named ) , 225d962d52aSRuslan Ermilovbecause they are required by 22654e347fbSGordon Tetlow.Pa DAEMON 22754e347fbSGordon Tetlowbelow. 22854e347fbSGordon Tetlow.It Pa DAEMON 22954e347fbSGordon TetlowCheck-point before all general purpose daemons such as 23054e347fbSGordon Tetlow.Pa lpd 23154e347fbSGordon Tetlowand 23254e347fbSGordon Tetlow.Pa ntpd . 23354e347fbSGordon Tetlow.It Pa LOGIN 23454e347fbSGordon TetlowCheck-point before user login services 23554e347fbSGordon Tetlow.Pa ( inetd 23654e347fbSGordon Tetlowand 23754e347fbSGordon Tetlow.Pa sshd ) , 23854e347fbSGordon Tetlowas well as services which might run commands as users 23954e347fbSGordon Tetlow.Pa ( cron 24054e347fbSGordon Tetlowand 24154e347fbSGordon Tetlow.Pa sendmail ) . 24254e347fbSGordon Tetlow.El 24354e347fbSGordon Tetlow.It Pa foo.sh 24454e347fbSGordon TetlowScripts that are to be sourced into the current shell rather than a subshell 24554e347fbSGordon Tetlowhave a 246d962d52aSRuslan Ermilov.Pa .sh 24754e347fbSGordon Tetlowsuffix. 24854e347fbSGordon TetlowExtreme care must be taken in using this, as the startup sequence will 24954e347fbSGordon Tetlowterminate if the script does. 25054e347fbSGordon Tetlow.It Pa bar 25154e347fbSGordon TetlowScripts that are sourced in a subshell. 25254e347fbSGordon TetlowThese can stop the boot if necessary with the following shell 25354e347fbSGordon Tetlowcommands: 254d962d52aSRuslan Ermilov.Bd -literal -offset indent 25554e347fbSGordon Tetlowif [ "$autoboot" = yes ]; then 25654e347fbSGordon Tetlow kill -TERM $$ 25754e347fbSGordon Tetlowfi 25854e347fbSGordon Tetlowexit 1 25954e347fbSGordon Tetlow.Ed 26054e347fbSGordon Tetlow.Pp 26154e347fbSGordon TetlowNote that this should be used extremely sparingly! 26254e347fbSGordon Tetlow.El 26354e347fbSGordon Tetlow.Pp 26454e347fbSGordon TetlowEach script should contain 26554e347fbSGordon Tetlow.Xr rcorder 8 26654e347fbSGordon Tetlowkeywords, especially an appropriate 267d962d52aSRuslan Ermilov.Dq Li PROVIDE 26854e347fbSGordon Tetlowentry, and if necessary 269d962d52aSRuslan Ermilov.Dq Li REQUIRE 27054e347fbSGordon Tetlowand 271d962d52aSRuslan Ermilov.Dq Li BEFORE 272d962d52aSRuslan Ermilovkeywords. 27354e347fbSGordon Tetlow.Pp 27454e347fbSGordon TetlowEach script is expected to support at least the following arguments, which 275d962d52aSRuslan Ermilovare automatically supported if it uses the 276d962d52aSRuslan Ermilov.Fn run_rc_command 277d962d52aSRuslan Ermilovfunction: 278d962d52aSRuslan Ermilov.Bl -tag -width ".Cm restart" -offset indent 279d962d52aSRuslan Ermilov.It Cm start 28054e347fbSGordon TetlowStart the service. 28154e347fbSGordon TetlowThis should check that the service is to be started as specified by 28254e347fbSGordon Tetlow.Xr rc.conf 5 . 28354e347fbSGordon TetlowAlso checks if the service is already running and refuses to start if 28454e347fbSGordon Tetlowit is. 28554e347fbSGordon TetlowThis latter check is not performed by standard 28654e347fbSGordon Tetlow.Fx 28754e347fbSGordon Tetlowscripts if the system is starting directly to multi-user mode, to 28854e347fbSGordon Tetlowspeed up the boot process. 28954e347fbSGordon TetlowIf 290d962d52aSRuslan Ermilov.Cm forcestart 29154e347fbSGordon Tetlowis given, ignore the 29254e347fbSGordon Tetlow.Xr rc.conf 5 29354e347fbSGordon Tetlowcheck and start anyway. 294d962d52aSRuslan Ermilov.It Cm stop 29554e347fbSGordon TetlowIf the service is to be started as specified by 29654e347fbSGordon Tetlow.Xr rc.conf 5 , 29754e347fbSGordon Tetlowstop the service. 298d962d52aSRuslan ErmilovThis should check that the service is running and complain if it is not. 29954e347fbSGordon TetlowIf 300d962d52aSRuslan Ermilov.Cm forcestop 30154e347fbSGordon Tetlowis given, ignore the 30254e347fbSGordon Tetlow.Xr rc.conf 5 30354e347fbSGordon Tetlowcheck and attempt to stop. 304d962d52aSRuslan Ermilov.It Cm restart 30554e347fbSGordon TetlowPerform a 306d962d52aSRuslan Ermilov.Cm stop 30754e347fbSGordon Tetlowthen a 308d962d52aSRuslan Ermilov.Cm start . 309d962d52aSRuslan Ermilov.It Cm status 31054e347fbSGordon TetlowIf the script starts a process (rather than performing a one-off 31154e347fbSGordon Tetlowoperation), show the status of the process. 312d962d52aSRuslan ErmilovOtherwise it is not necessary to support this argument. 31354e347fbSGordon TetlowDefaults to displaying the process ID of the program (if running). 314d962d52aSRuslan Ermilov.It Cm poll 31554e347fbSGordon TetlowIf the script starts a process (rather than performing a one-off 31654e347fbSGordon Tetlowoperation), wait for the command to exit. 317d962d52aSRuslan ErmilovOtherwise it is not necessary to support this argument. 318d962d52aSRuslan Ermilov.It Cm rcvar 31954e347fbSGordon TetlowDisplay which 32054e347fbSGordon Tetlow.Xr rc.conf 5 32154e347fbSGordon Tetlowvariables are used to control the startup of the service (if any). 32254e347fbSGordon Tetlow.El 32354e347fbSGordon Tetlow.Pp 32454e347fbSGordon TetlowIf a script must implement additional commands it can list them in 32554e347fbSGordon Tetlowthe 326d962d52aSRuslan Ermilov.Va extra_commands 327d962d52aSRuslan Ermilovvariable, and define their actions in a variable constructed from 32854e347fbSGordon Tetlowthe command name (see the 32954e347fbSGordon Tetlow.Sx EXAMPLES 33054e347fbSGordon Tetlowsection). 33154e347fbSGordon Tetlow.Pp 33254e347fbSGordon TetlowThe following key points apply to old-style scripts in 333d962d52aSRuslan Ermilov.Pa /usr/local/etc/rc.d/ : 33491e06c00SBen Smithurst.Pp 335d962d52aSRuslan Ermilov.Bl -bullet 33691e06c00SBen Smithurst.It 33791e06c00SBen SmithurstScripts are only executed if their 33891e06c00SBen Smithurst.Xr basename 1 33991e06c00SBen Smithurstmatches the shell globbing pattern 34091e06c00SBen Smithurst.Pa *.sh , 34191e06c00SBen Smithurstand they are executable. 34291e06c00SBen SmithurstAny other files or directories present within the directory are silently 34391e06c00SBen Smithurstignored. 34491e06c00SBen Smithurst.It 34591e06c00SBen SmithurstWhen a script is executed at boot time, it is passed the string 346d962d52aSRuslan Ermilov.Dq Li start 34791e06c00SBen Smithurstas its first and only argument. 34891e06c00SBen SmithurstAt shutdown time, it is passed the string 349d962d52aSRuslan Ermilov.Dq Li stop 35091e06c00SBen Smithurstas its first and only argument. 35191e06c00SBen SmithurstAll 352d962d52aSRuslan Ermilov.Nm rc.d/ 353d4bbfee2SJens Schweikhardtscripts are expected to handle these arguments appropriately. 35491e06c00SBen SmithurstIf no action needs to be taken at a given time 355d962d52aSRuslan Ermilov(either boot time or shutdown time), 35691e06c00SBen Smithurstthe script should exit successfully and without producing an error message. 35791e06c00SBen Smithurst.It 35891e06c00SBen SmithurstThe scripts within each directory are executed in lexicographical order. 35991e06c00SBen SmithurstIf a specific order is required, 36091e06c00SBen Smithurstnumbers may be used as a prefix to the existing filenames, 36191e06c00SBen Smithurstso for example 36291e06c00SBen Smithurst.Pa 100.foo 36391e06c00SBen Smithurstwould be executed before 36491e06c00SBen Smithurst.Pa 200.bar ; 36591e06c00SBen Smithurstwithout the numeric prefixes the opposite would be true. 36654e347fbSGordon Tetlow.It 36791e06c00SBen SmithurstThe output from each script is traditionally a space character, 36891e06c00SBen Smithurstfollowed by the name of the software package being started or shut down, 36991e06c00SBen Smithurst.Em without 37091e06c00SBen Smithursta trailing newline character (see the 37191e06c00SBen Smithurst.Sx EXAMPLES 37291e06c00SBen Smithurstsection). 37354e347fbSGordon Tetlow.El 374d962d52aSRuslan Ermilov.Sh SCRIPTS OF INTEREST 37554e347fbSGordon TetlowWhen an automatic reboot is in progress, 37654e347fbSGordon Tetlow.Nm 37754e347fbSGordon Tetlowis invoked with the argument 378d962d52aSRuslan Ermilov.Cm autoboot . 37954e347fbSGordon TetlowOne of the scripts run from 380d962d52aSRuslan Ermilov.Pa /etc/rc.d/ 38154e347fbSGordon Tetlowis 38254e347fbSGordon Tetlow.Pa /etc/rc.d/fsck . 38354e347fbSGordon TetlowThis script runs 38454e347fbSGordon Tetlow.Xr fsck 8 38554e347fbSGordon Tetlowwith option 38654e347fbSGordon Tetlow.Fl p 38754e347fbSGordon Tetlowand 38854e347fbSGordon Tetlow.Fl F 389d962d52aSRuslan Ermilovto 390d962d52aSRuslan Ermilov.Dq preen 391d962d52aSRuslan Ermilovall the disks of minor inconsistencies resulting 392d962d52aSRuslan Ermilovfrom the last system shutdown. 393d962d52aSRuslan ErmilovIf this fails, then checks/repairs of serious inconsistencies 394d962d52aSRuslan Ermilovcaused by hardware or software failure will be performed 395d962d52aSRuslan Ermilovin the background at the end of the booting process. 396d962d52aSRuslan ErmilovIf 397d962d52aSRuslan Ermilov.Cm autoboot 398d962d52aSRuslan Ermilovis not set, when going from single-user to multi-user mode for example, 399d962d52aSRuslan Ermilovthe script does not do anything. 40091e06c00SBen Smithurst.Pp 40154e347fbSGordon TetlowThe 40254e347fbSGordon Tetlow.Nm rc.early 40354e347fbSGordon Tetlowscript is run very early in the startup process, immediately before the 404d962d52aSRuslan Ermilovfile system check. 405d962d52aSRuslan ErmilovThe 40654e347fbSGordon Tetlow.Nm rc.early 407d962d52aSRuslan Ermilovscript is deprecated. 408d962d52aSRuslan ErmilovAny commands in this 40954e347fbSGordon Tetlowfile should be separated out into 410d962d52aSRuslan Ermilov.Nm rc.d/ 41154e347fbSGordon Tetlowstyle scripts and integrated into the 412d962d52aSRuslan Ermilov.Nm 41354e347fbSGordon Tetlowsystem. 41454e347fbSGordon Tetlow.Pp 41554e347fbSGordon TetlowThe 416d962d52aSRuslan Ermilov.Pa /etc/rc.d/local 41754e347fbSGordon Tetlowscript can execute scripts from multiple 418d962d52aSRuslan Ermilov.Nm rc.d/ 41991e06c00SBen Smithurstdirectories. 42091e06c00SBen SmithurstThe default locations are 421d962d52aSRuslan Ermilov.Pa /usr/local/etc/rc.d/ 42291e06c00SBen Smithurstand 423d962d52aSRuslan Ermilov.Pa /usr/X11R6/etc/rc.d/ , 42491e06c00SBen Smithurstbut these may be overridden with the 42591e06c00SBen Smithurst.Va local_startup 42691e06c00SBen Smithurst.Xr rc.conf 5 42791e06c00SBen Smithurstvariable. 42891e06c00SBen Smithurst.Pp 4298d74f63dSPhilippe CharnierThe 430d962d52aSRuslan Ermilov.Pa /etc/rc.d/serial 4318d74f63dSPhilippe Charnierscript is used to set any special configurations for serial devices. 432afe61c15SRodney W. Grimes.Pp 4338d74f63dSPhilippe CharnierThe 4348d74f63dSPhilippe Charnier.Nm rc.firewall 4358d74f63dSPhilippe Charnierscript is used to configure rules for the kernel based firewall 4361111b49cSSheldon Hearnservice. 4371111b49cSSheldon HearnIt has several possible options: 438e4f980d3SJordan K. Hubbard.Pp 439d962d52aSRuslan Ermilov.Bl -tag -width ".Ar filename" -compact -offset indent 440d962d52aSRuslan Ermilov.It Cm open 441d962d52aSRuslan Ermilovwill allow anyone in 442d962d52aSRuslan Ermilov.It Cm client 443d962d52aSRuslan Ermilovwill try to protect just this machine 444d962d52aSRuslan Ermilov.It Cm simple 445d962d52aSRuslan Ermilovwill try to protect a whole network 446d962d52aSRuslan Ermilov.It Cm closed 447d962d52aSRuslan Ermilovtotally disables IP services except via 448d962d52aSRuslan Ermilov.Pa lo0 449d962d52aSRuslan Ermilovinterface 450d962d52aSRuslan Ermilov.It Cm UNKNOWN 451d962d52aSRuslan Ermilovdisables the loading of firewall rules 452d962d52aSRuslan Ermilov.It Ar filename 453e4f980d3SJordan K. Hubbardwill load the rules in the given filename (full path required). 454e4f980d3SJordan K. Hubbard.El 455e4f980d3SJordan K. Hubbard.Pp 4568d74f63dSPhilippe CharnierThe 457d962d52aSRuslan Ermilov.Pa /etc/rc.d/atm* 45854e347fbSGordon Tetlowscripts are used to configure ATM network interfaces. 4597d5c779cSPoul-Henning KampThe interfaces are configured in three passes. 4607d5c779cSPoul-Henning KampThe first pass performs the initial interface configuration. 4617d5c779cSPoul-Henning KampThe second pass completes the interface configuration and defines PVCs and 4627d5c779cSPoul-Henning Kamppermanent ATMARP entries. 4637d5c779cSPoul-Henning KampThe third pass starts any ATM daemons. 4647d5c779cSPoul-Henning Kamp.Pp 46554e347fbSGordon TetlowMost daemons, including network related daemons, have their own script in 466d962d52aSRuslan Ermilov.Pa /etc/rc.d/ , 46754e347fbSGordon Tetlowwhich can be used to start, stop, and check the status of the service. 468e4f980d3SJordan K. Hubbard.Pp 46954e347fbSGordon TetlowAny architecture specific scripts, such as 47054e347fbSGordon Tetlow.Pa /etc/rc.d/apm 47154e347fbSGordon Tetlowfor example, specifically check that they are on that architecture 47254e347fbSGordon Tetlowbefore starting the daemon. 473e4f980d3SJordan K. Hubbard.Pp 47454e347fbSGordon TetlowFollowing tradition, all startup files reside in 475afe61c15SRodney W. Grimes.Pa /etc . 4769cbda590SRuslan Ermilov.Sh FILES 4779cbda590SRuslan Ermilov.Bl -tag -compact 4789cbda590SRuslan Ermilov.It Pa /etc/rc 4799cbda590SRuslan Ermilov.It Pa /etc/rc.conf 4809cbda590SRuslan Ermilov.It Pa /etc/rc.conf.local 4819cbda590SRuslan Ermilov.It Pa /etc/rc.d/ 4829cbda590SRuslan Ermilov.It Pa /etc/rc.firewall 4839cbda590SRuslan Ermilov.It Pa /etc/rc.local 4849cbda590SRuslan Ermilov.It Pa /etc/rc.shutdown 4859cbda590SRuslan Ermilov.It Pa /etc/rc.subr 4869cbda590SRuslan Ermilov.It Pa /var/run/dmesg.boot 487a3f9c9fcSRuslan Ermilov.Xr dmesg 8 4889cbda590SRuslan Ermilovresults soon after the 4899cbda590SRuslan Ermilov.Nm 4909cbda590SRuslan Ermilovprocess begins. 491a3f9c9fcSRuslan ErmilovUseful when 492a3f9c9fcSRuslan Ermilov.Xr dmesg 8 493a3f9c9fcSRuslan Ermilovbuffer in the kernel no longer has this information. 4949cbda590SRuslan Ermilov.El 49591e06c00SBen Smithurst.Sh EXAMPLES 49654e347fbSGordon TetlowThe following is a minimal 497d962d52aSRuslan Ermilov.Nm rc.d/ 498d962d52aSRuslan Ermilovstyle script. 499d962d52aSRuslan ErmilovMost scripts require little more than the following. 50054e347fbSGordon Tetlow.Bd -literal -offset indent 50154e347fbSGordon Tetlow#!/bin/sh 50254e347fbSGordon Tetlow# 50354e347fbSGordon Tetlow 50454e347fbSGordon Tetlow# PROVIDE: foo 50554e347fbSGordon Tetlow# REQUIRE: bar_service_required_to_precede_foo 50654e347fbSGordon Tetlow 507d962d52aSRuslan Ermilov\&. /etc/rc.subr 50854e347fbSGordon Tetlow 50954e347fbSGordon Tetlowname="foo" 51054e347fbSGordon Tetlowrcvar=`set_rcvar` 51154e347fbSGordon Tetlowcommand="/usr/local/bin/foo" 51254e347fbSGordon Tetlow 51354e347fbSGordon Tetlowload_rc_config $name 51454e347fbSGordon Tetlowrun_rc_command "$1" 51554e347fbSGordon Tetlow.Ed 51654e347fbSGordon Tetlow.Pp 517d962d52aSRuslan ErmilovCertain scripts may want to provide enhanced functionality. 518d962d52aSRuslan ErmilovThe user may access this functionality through additional commands. 519d962d52aSRuslan ErmilovThe script may list and define as many commands at it needs. 52054e347fbSGordon Tetlow.Bd -literal -offset indent 52154e347fbSGordon Tetlow#!/bin/sh 52254e347fbSGordon Tetlow# 52354e347fbSGordon Tetlow 52454e347fbSGordon Tetlow# PROVIDE: foo 52554e347fbSGordon Tetlow# REQUIRE: bar_service_required_to_precede_foo 52654e347fbSGordon Tetlow# BEFORE: baz_service_requiring_foo_to_precede_it 52754e347fbSGordon Tetlow 528d962d52aSRuslan Ermilov\&. /etc/rc.subr 52954e347fbSGordon Tetlow 53054e347fbSGordon Tetlowname="foo" 53154e347fbSGordon Tetlowrcvar=`set_rcvar` 53254e347fbSGordon Tetlowcommand="/usr/local/bin/foo" 53354e347fbSGordon Tetlowextra_commands="nop hello" 53454e347fbSGordon Tetlowhello_cmd="echo Hello World." 53554e347fbSGordon Tetlownop_cmd="do_nop" 53654e347fbSGordon Tetlow 53754e347fbSGordon Tetlowdo_nop() 53854e347fbSGordon Tetlow{ 53954e347fbSGordon Tetlow echo "I do nothing." 54054e347fbSGordon Tetlow} 54154e347fbSGordon Tetlow 54254e347fbSGordon Tetlowload_rc_config $name 54354e347fbSGordon Tetlowrun_rc_command "$1" 54454e347fbSGordon Tetlow.Ed 54554e347fbSGordon Tetlow.Pp 54691e06c00SBen SmithurstAs all processes are killed by 54791e06c00SBen Smithurst.Xr init 8 54891e06c00SBen Smithurstat shutdown, the explicit 54991e06c00SBen Smithurst.Xr kill 1 55091e06c00SBen Smithurstis unnecessary, but is often included. 551afe61c15SRodney W. Grimes.Sh SEE ALSO 55291e06c00SBen Smithurst.Xr kill 1 , 553e4f980d3SJordan K. Hubbard.Xr rc.conf 5 , 554afe61c15SRodney W. Grimes.Xr init 8 , 55554e347fbSGordon Tetlow.Xr rcorder 8 , 5561c85060aSRuslan Ermilov.Xr rc.subr 8 , 557afe61c15SRodney W. Grimes.Xr reboot 8 , 558afe61c15SRodney W. Grimes.Xr savecore 8 559afe61c15SRodney W. Grimes.Sh HISTORY 560afe61c15SRodney W. GrimesThe 561afe61c15SRodney W. Grimes.Nm 5628d74f63dSPhilippe Charnierutility appeared in 563afe61c15SRodney W. Grimes.Bx 4.0 . 564