38 Commits

Author SHA1 Message Date
Mateusz Piotrowski
0b87619ffe 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
Mateusz Piotrowski
d6dade0002 Fix grammar issues and typos
Reported by:	ian
MFC after:	1 week
2020-07-24 15:04:34 +00:00
Mateusz Piotrowski
5ccb7079f8 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
Mateusz Piotrowski
d15e810db9 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
Kyle Evans
ac102a2a63 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
Mateusz Piotrowski
fda4dad508 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
Mateusz Piotrowski
293f5f0209 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
Mark Felder
6b82569f2d 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 Tjoelker
3c3b8a0e85 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
Dmitry Marakasov
52d7a78f17 - 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
Baptiste Daroussin
5b71d8999c 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
Marcelo Araujo
3bead71e95 - 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
Hiroki Sato
61a8e84918 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
Dag-Erling Smørgrav
49cede74ee 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
Doug Barton
c86072f5a7 Remove documentation for set_rcvar() now that it has been removed. 2012-01-14 21:51:44 +00:00
Eygene Ryabinkin
0113cca483 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
Ed Maste
57984250f5 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
Lars Engels
fdec4b4190 Properly underline force_depend's parameter.
Reviewed by:	brueffer
2008-07-20 10:06:14 +00:00
Sergey Skvortsov
836d250db3 Fix punctiation.
Approved by:	ru
2008-03-31 14:11:37 +00:00
Yaroslav Tykhiy
8fe516386c 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
Mike Makonnen
3d03791bb4 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
Yaroslav Tykhiy
6a8cdb5a0d 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
Florent Thoumie
3081bf98bf 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
Yaroslav Tykhiy
016c675db6 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
Yaroslav Tykhiy
a5fd4f0b19 Don't forget to touch Dd. 2006-06-21 11:46:29 +00:00
Yaroslav Tykhiy
1679c7f4f4 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
Florent Thoumie
8d2e10d0b9 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
Florent Thoumie
46587ab898 - 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
Yaroslav Tykhiy
c6136be413 Forgot to bump .Dd in the last commit. 2006-02-22 15:12:07 +00:00
Yaroslav Tykhiy
91387563e2 Document the relation between $command and $foo_program.
PR:		docs/68453
MFC after:	3 days
2006-02-22 10:57:19 +00:00
Yaroslav Tykhiy
8d52cc90fb Use consistent punctuation and vertical indenting around .Dl's.
Wrap a too long line.
2005-10-26 04:20:18 +00:00
Yaroslav Tykhiy
5a3c72ce8f Document that `reload' is not provided by default
yet it can be enabled when applicable.
2005-10-26 04:12:34 +00:00
Ruslan Ermilov
eec3e03e41 Fixed markup. 2004-07-09 10:08:03 +00:00
Ruslan Ermilov
5203edcdc5 Mechanically kill hard sentence breaks and double whitespaces. 2004-07-03 18:29:24 +00:00
Mike Makonnen
4f779fd6b7 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
Doug Barton
62bb7f3301 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
Jens Schweikhardt
57bd0fc6e8 english(4) police. 2002-12-27 12:15:40 +00:00
Gordon Tetlow
54e347fb3b 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