Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
RCORDER(8)		FreeBSD	System Manager's Manual		    RCORDER(8)

     rcorder --	print a	dependency ordering of interdependent files

     rcorder [-k keep] [-s skip] file ...

     The rcorder utility is designed to	print out a dependency ordering	of a
     set of interdependent files.  Typically it	is used	to find	an execution
     sequence for a set	of shell scripts in which certain files	must be	exe-
     cuted before others.

     Each file passed to rcorder must be annotated with	special	lines (which
     look like comments	to the shell) which indicate the dependencies the
     files have	upon certain points in the sequence, known as "conditions",
     and which indicate, for each file,	which "conditions" may be expected to
     be	filled by that file.

     Within each file, a block containing a series of "REQUIRE", "PROVIDE",
     "BEFORE" and "KEYWORD" lines must appear.	The format of the lines	is
     rigid.  Each line must begin with a single	`#', followed by a single
     space, followed by	"PROVIDE:", "REQUIRE:",	"BEFORE:", or "KEYWORD:".  No
     deviation is permitted.  Each dependency line is then followed by a se-
     ries of conditions, separated by whitespace.  Multiple "PROVIDE",
     "REQUIRE",	"BEFORE" and "KEYWORD" lines may appear, but all such lines
     must appear in a sequence without any intervening lines, as once a	line
     that does not follow the format is	reached, parsing stops.

     The options are as	follows:

     -k	     Add the specified keyword to the "keep list".  If any -k option
	     is	given, only those files	containing the matching	keyword	are

     -s	     Add the specified keyword to the "skip list".  If any -s option
	     is	given, files containing	the matching keyword are not listed.

     An	example	block follows:

	   # REQUIRE: networking syslog
	   # REQUIRE: usr
	   # PROVIDE: dns nscd

     This block	states that the	file in	which it appears depends upon the
     "networking", "syslog", and "usr" conditions, and provides	the "dns" and
     "nscd" conditions.

     A file may	contain	zero "PROVIDE" lines, in which case it provides	no
     conditions, and may contain zero "REQUIRE"	lines, in which	case it	has no
     dependencies.  There must be at least one file with no dependencies in
     the set of	arguments passed to rcorder in order for it to find a starting
     place in the dependency ordering.

     There are several KEYWORDs	in use:

	   firstboot, nojail, nojailvnet, nostart
		     Used by rc(8).

	   resume    Used by /etc/rc.resume (see acpiconf(8))

	   shutdown  Used by rc.shutdown(8).

     The rcorder utility may print one of the following	error messages and
     exit with a non-zero status if it encounters an error while processing
     the file list.

     Requirement %s has	no providers, aborting.	 No file has a "PROVIDE" line
     corresponding to a	condition present in a "REQUIRE" line in another file.

     Circular dependency on provision %s, aborting.  A set of files has	a cir-
     cular dependency which was	detected while processing the stated condi-

     Circular dependency on file %s, aborting.	A set of files has a circular
     dependency	which was detected while processing the	stated file.

     acpiconf(8), rc(8), rc.shutdown(8)

     The rcorder utility appeared in NetBSD 1.5.  rcorder utility first	ap-
     peared in FreeBSD 5.0.

     Written by	Perry E. Metzger <> and Matthew R. Green

     The "REQUIRE" keyword is misleading: It does not describe which daemons
     have to be	running	before a script	will be	started.  It describes which
     scripts must be placed before it in the dependency	ordering.  For exam-
     ple, if your script has a "REQUIRE" on "named", it	means the script must
     be	placed after the "named" script	in the dependency ordering, not	neces-
     sarily that it requires named(8) to be started or enabled.

FreeBSD	13.0		       October 27, 2018			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help