Changeset View
Changeset View
Standalone View
Standalone View
head/sbin/rcorder/rcorder.8
Show All 25 Lines | |||||
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
.\" | .\" | ||||
.\" $FreeBSD$ | .\" $FreeBSD$ | ||||
.\" | .\" | ||||
.Dd June 22, 2020 | .Dd September 8, 2020 | ||||
.Dt RCORDER 8 | .Dt RCORDER 8 | ||||
.Os | .Os | ||||
.Sh NAME | .Sh NAME | ||||
.Nm rcorder | .Nm rcorder | ||||
.Nd print a dependency ordering of interdependent files | .Nd print a dependency ordering of interdependent files | ||||
.Sh SYNOPSIS | .Sh SYNOPSIS | ||||
.Nm | .Nm | ||||
.Op Fl gp | |||||
.Op Fl k Ar keep | .Op Fl k Ar keep | ||||
.Op Fl s Ar skip | .Op Fl s Ar skip | ||||
.Ar | .Ar | ||||
.Sh DESCRIPTION | .Sh DESCRIPTION | ||||
The | The | ||||
.Nm | .Nm | ||||
utility is designed to print out a dependency ordering of a set of | utility is designed to print out a dependency ordering of a set of | ||||
interdependent files. | interdependent files. | ||||
Show All 40 Lines | |||||
any intervening lines, as once a line that does not follow the format | any intervening lines, as once a line that does not follow the format | ||||
is reached, parsing stops. | is reached, parsing stops. | ||||
.\" Note that for historical reasons REQUIRES, PROVIDES, and KEYWORDS | .\" Note that for historical reasons REQUIRES, PROVIDES, and KEYWORDS | ||||
.\" are also accepted in addition to the above, but not documented so | .\" are also accepted in addition to the above, but not documented so | ||||
.\" that they can be deprecated at some point in the future. | .\" that they can be deprecated at some point in the future. | ||||
.Pp | .Pp | ||||
The options are as follows: | The options are as follows: | ||||
.Bl -tag -width "-k keep" | .Bl -tag -width "-k keep" | ||||
.It Fl g | |||||
Produce a GraphViz (.dot) of the complete dependency graph instead of | |||||
plaintext calling order list. | |||||
.It Fl k Ar keep | .It Fl k Ar keep | ||||
Add the specified keyword to the | Add the specified keyword to the | ||||
.Dq "keep list" . | .Dq "keep list" . | ||||
If any | If any | ||||
.Fl k | .Fl k | ||||
option is given, only those files containing the matching keyword are listed. | option is given, only those files containing the matching keyword are listed. | ||||
This option can be specified multiple times. | This option can be specified multiple times. | ||||
.It Fl p | |||||
Generate ordering suitable for parallel startup, placing files that can be | |||||
executed simultaneously on the same line. | |||||
.It Fl s Ar skip | .It Fl s Ar skip | ||||
Add the specified keyword to the | Add the specified keyword to the | ||||
.Dq "skip list" . | .Dq "skip list" . | ||||
If any | If any | ||||
.Fl s | .Fl s | ||||
option is given, files containing the matching keyword are not listed. | option is given, files containing the matching keyword are not listed. | ||||
This option can be specified multiple times. | This option can be specified multiple times. | ||||
.El | .El | ||||
▲ Show 20 Lines • Show All 60 Lines • ▼ Show 20 Lines | $ rcorder -k nostart -s firstboot -s nojailvnet /etc/rc.d/* | wc -l | ||||
3 | 3 | ||||
.Ed | .Ed | ||||
.Sh DIAGNOSTICS | .Sh DIAGNOSTICS | ||||
The | The | ||||
.Nm | .Nm | ||||
utility may print one of the following error messages and exit with a non-zero | 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. | status if it encounters an error while processing the file list. | ||||
.Bl -diag | .Bl -diag | ||||
.It "Requirement %s has no providers, aborting." | .It "Requirement %s in file %s has no providers." | ||||
No file has a | No file has a | ||||
.Ql PROVIDE | .Ql PROVIDE | ||||
line corresponding to a condition present in a | line corresponding to a condition present in a | ||||
.Ql REQUIRE | .Ql REQUIRE | ||||
line in another file. | line in another file. | ||||
.It "Circular dependency on provision %s, aborting." | .It "Circular dependency on provision %s in file %s." | ||||
A set of files has a circular dependency which was detected while | A set of files has a circular dependency which was detected while | ||||
processing the stated condition. | processing the stated condition. | ||||
.It "Circular dependency on file %s, aborting." | Loop visualization follows this message. | ||||
.It "Circular dependency on file %s." | |||||
A set of files has a circular dependency which was detected while | A set of files has a circular dependency which was detected while | ||||
processing the stated file. | processing the stated file. | ||||
.It "%s was seen in circular dependencies for %d times." | |||||
Each node that was a part of circular dependency loops reports total number of | |||||
such encounters. | |||||
Start with files having biggest counter when fighting with broken dependencies. | |||||
.El | .El | ||||
.Sh DIAGNOSTICS WITH GRAPHVIZ | |||||
Direct dependency is drawn with solid line, | |||||
.Ql BEFORE | |||||
dependency is drawn as a dashed line. | |||||
Each node of a graph represents an item from | |||||
.Ql PROVIDE | |||||
lines. | |||||
In case there are more than one file providing an item, a list of filenames | |||||
shortened with | |||||
.Xr basename 3 | |||||
is shown. | |||||
Shortened filenames are also shown in case | |||||
.Ql PROVIDE | |||||
item does not match file name. | |||||
.Pp | |||||
Edges and nodes where circular dependencies were detected are drawn bold red. | |||||
If a file has an item in | |||||
.Ql REQUIRE | |||||
or in | |||||
.Ql BEFORE | |||||
that could not be provided, | |||||
this missing provider and the requirement will be drawn bold red as well. | |||||
.Sh SEE ALSO | .Sh SEE ALSO | ||||
.Xr acpiconf 8 , | .Xr acpiconf 8 , | ||||
.Xr rc 8 , | .Xr rc 8 , | ||||
.Xr rc.shutdown 8 , | .Xr rc.shutdown 8 , | ||||
.Xr service 8 | .Xr service 8 | ||||
.Sh HISTORY | .Sh HISTORY | ||||
The | The | ||||
.Nm | .Nm | ||||
Show All 30 Lines |