Commit Graph

38 Commits

Author SHA1 Message Date
0mp
a4a73f251d Point to rc(8) for more details about the autoboot variable
Reviewed by:	bcr, imp
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D25904
2020-07-31 14:13:26 +00:00
0mp
92664b44e9 Fix grammar issues and typos
Reported by:	ian
MFC after:	1 week
2020-07-24 15:04:34 +00:00
0mp
088ab3df51 Document that force_depend() supports only /etc/rc.d scripts
Currently, force_depend() from rc.subr(8) does not support depending on
scripts outside of /etc/rc.d (like /usr/local/etc/rc.d). The /etc/rc.d path
is hard-coded into force_depend().

MFC after:	1 week
2020-07-24 14:17:37 +00:00
0mp
9dedb7eb35 rc: Honor ${name}_env when a custom *_cmd is defined (e.g., start_cmd)
A user may set ${name}_env variable in rc.conf(5) in order to set additional
environment variables for a service command.  Unfortunately, at the moment
this variable is only honored when the command is specified via the command
variable. Those additional environment variables coming from ${name}_env
are never set if the service is started via the ${rc_arg}_cmd variable (for
example start_cmd).

PR:		239692
Reviewed by:	bcr, jilles
Approved by:	src (jilles)
Differential Revision:	https://reviews.freebsd.org/D21228
2019-09-05 14:52:22 +00:00
kevans
87678f95ad rc.subr: Provide rc_service variable for service scripts
Some rc scripts in ports (e.g. uwsgi, apache, openvpn) allow for
'application profiles' that usually require the rc script to be invoked
again for each active profile. Because there's no consistent way to
determine the path because it differs between manual/service(8) invocations
and /etc/rc invocations, this leads to patterns like these:

- www/uwsgi hardcodes the script path
- security/openvpn guesses either $_file or $0 based on $0 = /etc/rc

Instead of forcing rc scripts to guess, provide an rc_service variable to
the scripts that gets set appropriately both for direct execution or when a
script is being executed via run_rc_script (e.g. /etc/rc).

This is our analog of an OpenRC variable with the same name, different case
(RC_SERVICE).

PR:		234614
Reported by:	koobs
Reviewed by:	dteske, jilles
MFC after:	3 days
2019-01-05 21:23:25 +00:00
0mp
e7727d5701 rc.subr(8): Document when required_* variables are processed
At the moment rc.subr(8) supports the following required_* variables:
required_dirs, required_files, required_modules and required_vars.

This patch documents when every of those required_* variables is actually
processed (before or after running start_precmd).

Reviewed by:	bcr
Approved by:	krion (mentor, implicit), mat (mentor, implicit)
Sponsored by:	Bally Wulff Games & Entertainment GmbH
Differential Revision:	https://reviews.freebsd.org/D17895
2018-11-07 16:56:32 +00:00
0mp
a43d5ffb97 Fix "mandoc -Tlint" warnings.
Reviewed by:	bcr
Approved by:	mat (mentor)
Differential Revision:	https://reviews.freebsd.org/D15580
2018-08-06 11:45:28 +00:00
feld
24b70331af Document the new ${name}_env_file feature
Approved by:	bcr
MFH:		3 days
Differential Revision:	https://reviews.freebsd.org/D15578
2018-06-19 19:27:37 +00:00
jilles
00a3da7f3b rc.subr.8: Improve documentation of ${name}_limits and ${name}_login_class
Submitted by:	0mp
Differential Revision:	https://reviews.freebsd.org/D14928
2018-04-03 21:44:43 +00:00
amdmi3
13936f4958 - Document new ${name}_limits rc.conf option
Approved by:	cy
MFC after:	2 weeks (along with 328331 which introduced this option)
Differential Revision:	https://reviews.freebsd.org/D14028
2018-02-06 15:30:17 +00:00
bapt
a21d9f2b30 Remove backup_uses_rcs from rc.subr
In preparation for the removal of GNU rcs from base, remove the backup_uses_rcs
functionality from the rc.subr backup_file feature. This functionnality was off
by default

Reviewed by:	wblock
Differential Revision:	https://reviews.freebsd.org/D7883
2016-09-18 12:49:23 +00:00
araujo
bd6a91854e - Add a global option where we can protect processes when swap space
is exhausted.

How to use:

Basically we need to add on rc.conf an another option like:

    If we want to protect only the main processes.
    syslogd_oomprotect="YES"

    If we want to protect all future children of the specified processes.
    syslogd_oomprotect="ALL"

PR:		204741 (based on)
Submitted by:	eugen@grosbein.net
Reviewed by:	jhb, allanjude, rpokala and bapt
MFC after:	4 weeks
Relnotes:	Yes
Sponsored by:	gandi.net
Differential Revision:	https://reviews.freebsd.org/D5176
2016-02-24 01:32:12 +00:00
hrs
77616d41a2 Add ${name}_env and ${name}_prepend. ${name}_env is an argument list which
will be passed to env(1).  ${name}_prepend is simply prepended to the command
line for $command.
2014-10-11 23:49:27 +00:00
des
b1d537a11d 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)
2013-09-23 04:36:51 +00:00
dougb
c578dd940c Remove documentation for set_rcvar() now that it has been removed. 2012-01-14 21:51:44 +00:00
rea
c797a8475b rc.d: document 'quiet' prefix and fix dhclient/devd interaction
Document the current semantics of the 'quiet' command prefix
in the rc.subr(8).

Fix dhclient rc.d script: it should not call err() for
non-DHCP-enabled interface when it is called from devd, because the
latter just blindly calls 'service dhclient quietstart' on each "link
up" event.

Since the 'quietstart' will silence the message "Cannot 'start' <foo>.
Set <foo>_enable to YES in /etc/rc.conf or use 'onestart' instead of
'start'." and running dhclient on the non-DHCP-enabled interface is
the same thing as running the service <foo> without <foo>_enable set,
such modification is in sync with the current semantics of the 'quiet'
prefix.

Approved by: glebius
Reviewed by: freebsd-rc list
MFC after:	2 weeks
2012-01-12 06:48:11 +00:00
emaste
cf9c897ddd Clean up rc.subr man page after removing leftover NetBSD compat. Also
switch to 2-clause license per NetBSD rc.subr.8 r1.19.

Submitted by:	Alex Kozlov
2010-01-28 01:47:31 +00:00
lme
55d8a68c02 Properly underline force_depend's parameter.
Reviewed by:	brueffer
2008-07-20 10:06:14 +00:00
skv
206a6eb6a9 Fix punctiation.
Approved by:	ru
2008-03-31 14:11:37 +00:00
yar
ab55394041 o Add a note that checkyesno takes a variable by its name, not value.
o Improve mdoc(7) markup and style of the paragraph on stop_boot.
2007-10-26 09:38:54 +00:00
mtm
6d5baaa091 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
2007-05-18 12:04:41 +00:00
yar
5ec2f453ec MFp4:
Document my recent changes to rc.subr(8):
- there is $required_modules now;
- $required_* are checked before invoking a custom start method, too.

MFC after:	1 month
2006-12-27 13:22:41 +00:00
flz
54b7b1d84e Backout this commit since it breaks startup and some scripts in
certain conditions. I haven't been able to find a better solution yet:

    - Set a two read-only variables (${prefix} and ${etcdir}). This is
    especially useful when using /etc/rc.d scripts with third-party
    software installed from ports.
    - Fix rc.d/sshd to work with openssh from ports using ${etcdir}
    instead of hardcoded /etc.
    - Reflect prefix/etcdir changes in rc.subr.8.

        src/etc/rc.d/sshd: rev 1.9 -> 1.10
        src/etc/rc.subr: rev 1.51 -> 1.52
        src/share/man/man8/rc.subr.8: rev 1.11 -> 1.12

Approved by:	cperciva (mentor)
2006-08-22 11:17:29 +00:00
yar
0608345395 Improve mark-up: References to "start" as an rc.d method
should be tagged with ".Cm".  (Refs to "stop" are OK already.)

MFC after:	3 days
2006-07-24 10:07:27 +00:00
yar
0e343922c8 Don't forget to touch Dd. 2006-06-21 11:46:29 +00:00
yar
ad10a899ae Quite a number of rc.d scripts try to load kernel modules. Many
of them do that conditionally depending on kldstat.  The code is
duplicated all over, but bugs can be uniqie.

To make the things more consistent, introduce a new rc.subr function,
load_kld, which takes care of loading a kernel module conditionally.

(Found this lying for a while in my p4 branch for various hacks.)
2006-06-21 09:42:55 +00:00
flz
dc95de3e71 Reflect latest changes in rc.subr wrt prefix/etcdir variables being set
automatically by load_rc_config.

With help from:	ru (mdoc-fu)
Reviewed by:	brueffer
Approved by:	cperciva
2006-06-07 10:20:57 +00:00
flz
c728727d1b - Sync rc.subr with NetBSD.
- Merge some documentation bits.

Reviewed by:	brooks, simon (doc)
Approved by:	cperciva (mentor)
Obtained from:	NetBSD
MFC after:	3 days
2006-04-04 10:52:15 +00:00
yar
271439a3f1 Forgot to bump .Dd in the last commit. 2006-02-22 15:12:07 +00:00
yar
33f484fce3 Document the relation between $command and $foo_program.
PR:		docs/68453
MFC after:	3 days
2006-02-22 10:57:19 +00:00
yar
4a93cc5bfd Use consistent punctuation and vertical indenting around .Dl's.
Wrap a too long line.
2005-10-26 04:20:18 +00:00
yar
82d988c3c8 Document that `reload' is not provided by default
yet it can be enabled when applicable.
2005-10-26 04:12:34 +00:00
ru
933877b657 Fixed markup. 2004-07-09 10:08:03 +00:00
ru
1cf1598667 Mechanically kill hard sentence breaks and double whitespaces. 2004-07-03 18:29:24 +00:00
mtm
f32ed9ec71 NetBSD rev. 1.10
successful [is spelled] with only one l

NetBSD rev. 1.12
 Implement ``one'' prefix to allow a "one shot" operation as if
 ${rcvar}=yes yet all the other prerequisite tests are still performed.
 The existing ``force'' prefix is a sledgehammer that ignores all the
 prerequisite checks and always returns a zero exit status; this is a
 more gentle approach to the problem of "manipulate this disabled
 service without editing rc.conf(5)".

Obtained From:	NetBSD
2004-02-27 10:20:22 +00:00
dougb
632a97ab8a FreeBSD has no systrace(1), and our rc.subr does not support it.
Submitted by:	Simon L. Nielsen <simon@nitro.dk>
2003-04-22 05:13:55 +00:00
schweikh
fec6546e12 english(4) police. 2002-12-27 12:15:40 +00:00
gordon
15af9ed077 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
2002-11-21 20:12:05 +00:00