In FreeBSD as in most other Operating Systems, the boot process consist of starting a set of scripts/services/daemons/processes. Each of those has constraints like depending-on or starting before other scripts for instance.
On a default FreeBSD install, this order would be determined by the packages you install, each of them installing a script in
/usr/local/etc/rc.d that specifies its constraints requirements.
What, however, if you wanted to change the order of the boot process? For instance, you have a script that by default starts just after the network is ready, but in your case, it specifically has to start after another script for everything to work properly.
Well, I was confronted to that particular problem, and the answer is cross-dependency-scripts or whatever you want to call them.
Suppose that you have the following scripts in your boot process: A, B, C, D. By default, B, C and D start just after A. But you want to change that so B starts after D and C starts after B.
If you changed the order dependency in script B and C directly, that change would be overwritten on the next package update. Instead we add two empty scripts __B and __C that will just enforce the dependence. That is, __B starts after D and before B, __C starts after B and before C.
Looking at the code, at the beginning of the original scripts you would find:
-- rc.d/A #!/bin/sh # PROVIDE: A
-- rc.d/B #!/bin/sh # PROVIDE: B # REQUIRE: A
-- rc.d/C #!/bin/sh # PROVIDE: C # REQUIRE: A
-- rc.d/D #!/bin/sh # PROVIDE: D # REQUIRE: A
Thus you would add two scripts __B and __D that contains:
-- rc.d/__B #!/bin/sh # PROVIDE: __B # REQUIRE: D # BEFORE: B
-- rc.d/__C #!/bin/sh # PROVIDE: __C # REQUIRE: B # BEFORE: C