History log of /freebsd-current/share/man/man8/rc.8
Revision Date Author Comments
# aa3b7a2f 09-Feb-2024 Simon J. Gerraty <sjg@FreeBSD.org>

/etc/rc add trace debug and verify

Debugging boot issues can be helped by
logging each rc.d script as it is run
and being able to selectively enable/disable set -x
debug.sh provides an elaborate framework for debugging shell scripts.

For secure systems, we want to be paranoid about what we read
during boot.

dot() simply reads (.) arg file if it exists
vdot() if mac_veriexec is active, ignore unverified files
otherwise behaves much the same as dot()
safe_dot() in safe_eval.sh allows reading an untrusted file;
limiting the input to simple variable assignments.

In load_rc_config allow caller to provide an option to indicate how to
handle its arg:
-v use vdot()
-s use sdot() which will try to use vdot() and fallback to safe_dot()
The default is to read using dot()

rc_run_scripts()
encapsulate the running of rc.d scripts
so that we can easily call it more than twice.

We vdot local.rc.subr to pick up extensions (like
run_rc_scripts_final) and overrides.

We also allow rc.subr.local or rc.conf to set rc_config_xtra
eg (rc_config_xtra=XXX for historic compatibility)

rc use set -o verify around the reading in of rc.subr
This has no effect if mac_veriexec is not active, but if it is; ensures
rc.subr has not been tampered with.

Reviewed by: imp
Sponsored by: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D43671


# b9f44620 27-Dec-2023 Graham Perrin <grahamperrin@gmail.com>

rc(8): angle brackets to avoid link breakage

<https://datatracker.ietf.org/doc/html/rfc3986#appendix-C>

Double-quotes are not suitably effective. Instead, use angle brackets.

Whilst here:
- remove superfluous quotation marks from the %T title.

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/811


# 97759ccc 23-Nov-2023 Warner Losh <imp@FreeBSD.org>

share: Remove ancient SCCS tags.

Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.

Sponsored by: Netflix


# b2c76c41 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line nroff pattern

Remove /^\.\\"\s*\$FreeBSD\$$\n/


# 0981275c 02-Jun-2023 Mina Galić <freebsd@igalic.co>

rc(8): document how to reload rc's configuration

The fact that rc(8) only reads its configuration once is in the man
page, but how to trigger a reload is only in the code.

Discovered while trying to make cloud-init disable and stop syslogd.

Thanks to RhodiumToad for providing the words.

Reviewed by: debdrup, grahamperrin
Approved by: grahamperrin, imp
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D40329


# 604bc078 03-Jul-2022 Mateusz Piotrowski <0mp@FreeBSD.org>

rc.8: Reference the article about rc scripting

MFC after: 3 days


# c2ebbb55 06-Oct-2020 John-Mark Gurney <jmg@FreeBSD.org>

add the FILESYSTEMS placeholder and note that it's the default early_late_divider


# 5fda0d60 03-Oct-2019 Andriy Gapon <avg@FreeBSD.org>

add ability to set watchdog timeout for a shutdown

This change allows to specify a watchdog(9) timeout for a system
shutdown. The timeout is activated when the watchdogd daemon is
stopped. The idea is to a prevent any indefinite hang during late
stages of the shutdown. The feature is implemented in rc.d/watchdogd,
it builds upon watchdogd -x option.

Note that the shutdown timeout is not actiavted when the watchdogd
service is individually stopped by an operator. It is also not
activated for the 'shutdown' to the single-user mode. In those cases it
is assumed that the operator knows what they are doing and they have
means to recover the system should it hang.

Significant subchanges and implementation details:
- the argument to rc.shutdown, completely unused before, is assigned to
rc_shutdown variable that can be inspected by rc scripts
- init(8) passes "single" or "reboot" as the argument, this is not
changed
- the argument is not mandatory and if it is not set then rc_shutdown is
set to "unspecified"
- however, the default jail management scripts and jail configuration
examples have been updated to pass "jail" to rc.shutdown, just in case
- the new timeout can be set via watchdogd_shutdown_timeout rc option
- for consistency, the regular timeout can now be set via
watchdogd_timeout rc option
- watchdogd_shutdown_timeout and watchdogd_timeout override timeout
specifications in watchdogd_flags
- existing configurations, where the new rc options are not set, should
keep working as before

I am not particularly wed to any of the implementation specifics.
I am open to changing or removing any of them as long as the provided
functionality is the same (or very close) to the proposed one.
For example, I think it can be implemented without using watchdogd -x,
by means of watchdog(1) alone. In that case there would be a small
window between stopping watchdogd and running watchdog, but I think that
that is acceptable.

Reviewed by: bcr (man page changes)
MFC after: 5 weeks
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D21221


# bb66a3e9 06-Sep-2019 Mateusz Piotrowski <0mp@FreeBSD.org>

rc.8: Update documentation regarding old-style rc scripts

The EXAMPLES section does not contain any examples of output formats for
the old-style scripts. Remove the misleading bits stating otherwise.

Reviewed by: bcr, imp
Approved by: src (imp)
Differential Revision: https://reviews.freebsd.org/D21552


# 09b238e7 07-Aug-2019 Andriy Gapon <avg@FreeBSD.org>

rc.8: fix a typo in r350701

I wronlgy expected that igor(1) checks spelling of all words.

MFC after: 1 week


# ce6c81b9 07-Aug-2019 Andriy Gapon <avg@FreeBSD.org>

rc.8: add a reference to service(8)

While here:
- use Xr macro for a reference to sysrc(8)
- clarify that rc.shutdown invokes rc.d scripts with "faststop" argument

MFC after: 1 week


# 735f0ef0 29-Dec-2018 Enji Cooper <ngie@FreeBSD.org>

Remove legacy rc.d infrastructure references from rc(8)

Legacy rc.d scripts (.sh extension) have not been supported since
r193118. Remove the outdated references to the legacy format, as they
are no longer valid.

Bug: 193936
MFC after: 1 week
Reviewed by: cress, emaste (mentor)
Differential Revision: https://reviews.freebsd.org/D18666


# da45b4da 31-Oct-2018 Devin Teske <dteske@FreeBSD.org>

Add new rc keywords: enable, disable, delete

This adds new keywords to rc/service to enable/disable a service's
rc.conf(5) variable and "delete" to remove the variable.

When the "service_delete_empty" variable in rc.conf(5) is set to "YES"
(default is "NO") an rc.conf.d file (in /etc/ or /usr/local/etc) is
deleted if empty after modification using "service $foo delete".

Submitted by: lme (modified)
Reviewed by: 0mp (previous version), lme, bcr
Relnotes: yes
Sponsored by: Smule, Inc.
Differential Revision: https://reviews.freebsd.org/D17113


# b25a469f 27-Oct-2018 Eugene Grosbein <eugen@FreeBSD.org>

rcorder(8): add support for /etc/rc.resume, so it calls "rcorder -k resume"
and runs scripts containing "KEYWORD: resume" with single "resume" argument.

Working example is the port sysutils/cpupdate that defines
extra_commands="resume" to reload CPU microcode cleared
by suspend/resume sequence.

This change does nothing for a system having no scripts with KEYWORD: resume.

MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D15247


# 09fdf1f8 21-Oct-2017 Stefan Eßer <se@FreeBSD.org>

Mention sysrc(8) as scripting interface for the modification of config
files. This is a follow up commit to r324721, which added sysrc(8) to
the SEE ALSO list.

Submitted by: Kurt Jaeger (lists at opsec.eu)
MFC after: 1 week


# e5accd3c 18-Oct-2017 Stefan Eßer <se@FreeBSD.org>

Add references to sysrc(8).

Reported by: Kurt Jaeger (lists at opsec.eu)


# 0607c830 27-Apr-2017 Brooks Davis <brooks@FreeBSD.org>

More ATM and NATM removal

Submitted by: ak
Reviewed by: ngie
Differential Revision: https://reviews.freebsd.org/D10511


# 027b4687 23-Apr-2016 Baptiste Daroussin <bapt@FreeBSD.org>

Bump the date of the manpage after r298515

Sponsored by: Essen Hackathon 2016


# 1980d11b 23-Apr-2016 Lars Engels <lme@FreeBSD.org>

- Add two new subcommands to rc.subr:
"describe" shows an rc script's description
"extracommands" shows an rc script's non-standard commands like "reload", "configtest", "keygen", etc
- Update the rc(8) manpage and the tcsh(1) completion examples to reflect these changes

Approved by: bapt
Sponsored by: Essen Linuxhotel Hackathon 2016
Differential Revision: D452


# 121f7af1 26-Dec-2014 Baptiste Daroussin <bapt@FreeBSD.org>

Sort SEE ALSO


# dda5b397 13-Mar-2014 Eitan Adler <eadler@FreeBSD.org>

multiple: Remove 3rd clause from BSD license where approved by the
regents and renumber.

This patch skips files in contrib/ and crypto/

Acked by: imp
Discussed with: emaste


# 54c22eea 25-Dec-2013 Sergey Kandaurov <pluknet@FreeBSD.org>

Clean up manual pages after BIND removal.

MFC after: 1 week


# cabad264 19-Oct-2013 Colin Percival <cperciva@FreeBSD.org>

Add support for "first boot" rc.d scripts. [1]

These scripts, containing
# KEYWORD: firstboot
will only be run if a sentinel file (default: /firstboot, configurable
via the rc.conf ${firstboot_sentinel} variable) exists; this sentinel
file will be deleted at the end of the boot process.

Scripts can request that the system reboot after the first boot by
creating the file ${firstboot_sentinel}-reboot.

This functionality is expected to be useful for embedded systems and
virtual machine images, where it may be desirable to
(a) download and install updates which became available between when
the image was created and when it was "turned on";
(b) download and install packages which may be newer than those
which were available when the image was created;
(c) install packages which run binaries during their install process,
bypassing the problem of cross-architecture installs;
(d) resize filesystems to match the disk onto which a VM image was
installed;
(e) perform initialization tasks relevant to cloud systems (e.g.,
Amazon's Elastic Compute Cloud);
and likely to perform many other one-time initialization functions.

Document this new functionality in rc.conf(5) and rc(8). [2]

Reviewed by: freebsd-current, freebsd-rc [1]
Reviewed by: Warren Block [2]
MFC after: 3 days


# 49cede74 22-Sep-2013 Dag-Erling Smørgrav <des@FreeBSD.org>

Add a setup script for unbound(8) called local-unbound-setup. It
generates a configuration suitable for running unbound as a caching
forwarding resolver, and configures resolvconf(8) to update unbound's
list of forwarders in addition to /etc/resolv.conf. The initial list
is taken from the existing resolv.conf, which is rewritten to point to
localhost. Alternatively, a list of forwarders can be provided on the
command line.

To assist this script, add an rc.subr command called "enabled" which
does nothing except return 0 if the service is enabled and 1 if it is
not, without going through the usual checks. We should consider doing
the same for "status", which is currently pointless.

Add an rc script for unbound, called local_unbound. If there is no
configuration file, the rc script runs local-unbound-setup to generate
one.

Note that these scripts place the unbound configuration files in
/var/unbound rather than /etc/unbound. This is necessary so that
unbound can reload its configuration while chrooted. We should
probably provide symlinks in /etc.

Approved by: re (blanket)


# 6a774190 24-May-2013 Jamie Gritton <jamie@FreeBSD.org>

Mention the "nojailvnet" keyword.

MFC after: 3 days


# 344c81a1 23-May-2012 Warren Block <wblock@FreeBSD.org>

Fixes to man8 groff mandoc style, usage mistakes, or typos.

PR: 168016
Submitted by: Nobuyuki Koganemaru
Approved by: gjb
MFC after: 3 days


# e9074458 14-May-2012 Glen Barber <gjb@FreeBSD.org>

Fix an mdoc(7) formatting nit.


# c86072f5 14-Jan-2012 Doug Barton <dougb@FreeBSD.org>

Remove documentation for set_rcvar() now that it has been removed.


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# 0d9deed5 07-Oct-2010 Ulrich Spörlein <uqs@FreeBSD.org>

mdoc: drop redundant .Pp and .LP calls

They have no effect when coming in pairs, or before .Bl/.Bd


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# f8aa319b 18-Dec-2009 Xin LI <delphij@FreeBSD.org>

MFC r199463:

rc.early(8) was removed as of 20090530 so remove manual page reference
to it.


# 3b5dbf01 17-Nov-2009 Xin LI <delphij@FreeBSD.org>

rc.early(8) was removed as of 20090530 so remove manual page reference
to it.

MFC after: 1 week


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 9a0e6be2 24-Jul-2007 Xin LI <delphij@FreeBSD.org>

Stop mentioning /usr/X11R6.

Approved by: re (hrs)


# 3d03791b 17-May-2007 Mike Makonnen <mtm@FreeBSD.org>

o Implement the stop_boot subroutine [1]. This subroutine can be used by
scripts in rc.d to stop rc(8) from booting into multi-user mode when
a critical or severe error condition is encountered.

o Modify scripts in etc/rc.d that already implemented this functionality
independently.

o Document it.

[1] - This subroutine was implemented in FreeBSD in rc.d/fsck. I moved it
to rc.subr(8). Our version differs slightly in that it takes an
optional argument to stop the boot even if "autoboot" is not set.

Obtained from: NetBSD
MFC after: 2 weeks


# 81ae4b8d 18-Sep-2006 Ruslan Ermilov <ru@FreeBSD.org>

Markup fixes.


# 9eb99781 19-Dec-2005 Doug Barton <dougb@FreeBSD.org>

Bring this page of the manual more in line with reality
as to how things work currently.

Delete a lot of stale references.


# a3f9c9fc 20-Jan-2005 Ruslan Ermilov <ru@FreeBSD.org>

Fixed xref.


# 9cbda590 21-Jan-2005 Ruslan Ermilov <ru@FreeBSD.org>

Sort sections.


# 028a5b92 07-Oct-2004 Mike Makonnen <mtm@FreeBSD.org>


# 2410103c 07-Jul-2004 Ruslan Ermilov <ru@FreeBSD.org>

mdoc(7) fixes.


# 1c85060a 04-Jul-2004 Ruslan Ermilov <ru@FreeBSD.org>

Sort SEE ALSO references (in dictionary order, ignoring case).


# 3d595e7e 03-Jul-2004 Warner Losh <imp@FreeBSD.org>

Document /var/run/dmesg.boot, which is created by the rc scripts. Many
people have suggested that we document this somewhere, and this was a common
suggestion.


# 8d5d039f 12-Dec-2002 Ruslan Ermilov <ru@FreeBSD.org>

Uniformly refer to a file system as "file system".

Approved by: re


# d962d52a 29-Nov-2002 Ruslan Ermilov <ru@FreeBSD.org>

mdoc(7) police: scheduled sweep.

Approved by: re


# 54e347fb 21-Nov-2002 Gordon Tetlow <gordon@FreeBSD.org>

Update rc(8) manpage to reflect rc.d
Add an rc.subr(8) manpage
Hook rc.subr.8 up to the build.

Submitted by: Mike Makonnen <mtm@identd.net>
Approved by: re@ (bmah)
Obtained from: NetBSD


# d4bbfee2 20-Aug-2002 Jens Schweikhardt <schweikh@FreeBSD.org>

Insert missing 'are' to fix grammar bogon.
MFC after: 3 days


# 8d74f63d 14-Jul-2002 Philippe Charnier <charnier@FreeBSD.org>

The .Nm utility


# 6ee2a895 20-Mar-2002 Crist J. Clark <cjc@FreeBSD.org>

Add a paragraph break I missed in my last update.


# eb35eb26 17-Mar-2002 Crist J. Clark <cjc@FreeBSD.org>

Add documentation for rc.early(8).

PR: misc/35992
MFC after: 3 days


# 6575e6da 08-Aug-2001 Ruslan Ermilov <ru@FreeBSD.org>

mdoc(7) police: expand plain text xrefs.


# c1f3e4bf 14-Jul-2001 Jens Schweikhardt <schweikh@FreeBSD.org>

Removed whitespace at end-of-line; no content changes. I simply did
cd src/share; find man[1-9] -type f|xargs perl -pi -e 's/[ \t]+$//'

BTW, what editors are the culprits? I'm using vim and it shows
me whitespace at EOL in troff files with a thick blue block...

Reviewed by: Silence from cvs diff -b
MFC after: 7 days


# 3d45e180 10-Jul-2001 Ruslan Ermilov <ru@FreeBSD.org>

mdoc(7) police: removed HISTORY info from the .Os call.


# 4b66483f 20-Nov-2000 Ruslan Ermilov <ru@FreeBSD.org>

mdoc(7) police: use the new features of the Nm macro.


# 91e06c00 19-Jul-2000 Ben Smithurst <ben@FreeBSD.org>

Document the rc.d system.

Suggested by: dcs
Reviewed by: alex, dcs, sheldonh


# 22d80076 20-Jun-2000 Alexander Langer <alex@FreeBSD.org>

rc.local is no longer a default.

PR: 19314
Submitted by: Ben Smithurst <ben@scientia.demon.co.uk>


# 1111b49c 03-Mar-2000 Sheldon Hearn <sheldonh@FreeBSD.org>

Remove single-space hard sentence breaks. These degrade the quality
of the typeset output, tend to make diffs harder to read and provide
bad examples for new-comers to mdoc.


# 7f3dea24 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# ab327a82 12-Dec-1998 Matthew Dillon <dillon@FreeBSD.org>

Reviewed by: freebsd-current

Update manual pages for rc(8) and rc.conf(5) based on recent changes
to rc.local and rc.conf[.local].


# f633e4c9 12-Dec-1998 Matthew Dillon <dillon@FreeBSD.org>

Clarify rc's handling of rc.local


# 7d5c779c 06-Oct-1998 Poul-Henning Kamp <phk@FreeBSD.org>

Here are some scripts and man pages for configuring HARP ATM
interfaces.

Reviewed by: phk
Submitted by: Mike Spengler <mks@networkcs.com>


# e4f980d3 25-Feb-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

Update man page to reflect reality.
PR: 5828
Submitted by: Stephen J. Roznowski <sjr@home.net>


# ac5afce1 06-Mar-1997 John-Mark Gurney <jmg@FreeBSD.org>

add missing cvs Id lines.


# edf0e5b3 07-Apr-1996 Mike Pritchard <mpp@FreeBSD.org>

Correct some man page xrefs, and some other minor changes to bring some
man pages up to mdoc guidelines and fix some minor formatting glitches.
Also fixed a number of man pages to not abuse the .Xr macro to
display functions and path names and a lot of other junk.


# afe61c15 30-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

BSD 4.4 Lite Share Sources