From 09050817f8937ec367985f8c177a137301f2ad4b Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Mon, 4 Dec 2023 20:23:51 +1100 Subject: [PATCH] typo fix --- doc/66-all.md | 56 ------------------------------- doc/66-hpr.md | 4 --- doc/66-instate.md | 36 -------------------- doc/66-shutdown.md | 2 +- doc/66.md | 20 +++++------ doc/configure.md | 8 +++-- doc/disable.md | 6 ++-- doc/instantiated-service.md | 12 +++---- doc/service-configuration-file.md | 8 ++--- doc/stop.md | 12 +++---- doc/tree.md | 28 ++++++++-------- doc/upgrade.md | 6 ++-- 12 files changed, 52 insertions(+), 146 deletions(-) delete mode 100644 doc/66-all.md delete mode 100644 doc/66-instate.md diff --git a/doc/66-all.md b/doc/66-all.md deleted file mode 100644 index 8d002272..00000000 --- a/doc/66-all.md +++ /dev/null @@ -1,56 +0,0 @@ -title: The 66 Suite: 66-all -author: Eric Vidal <eric@obarun.org> - -[66](index.html) - -[Software](https://web.obarun.org/software) - -[obarun.org](https://web.obarun.org) - -# 66-all - -This command handles all *services* for any *tree* defined for the current user of the proccess at once. - -## Interface - -``` - 66-all [ -h ] [ -z ] [ -v verbosity ] [ -l live ] [ -T timeout ] [ -f ] [ -t tree ] up|down|unsupervise -``` - -Any enabled *tree*—see [66-tree -E](66-tree.html)—or a specific one passed with the **-t** option, and an already running *scandir* will be processed. It is a safe wrapper around [66-start](66-start.html) and [66-stop](66-stop.html). - -## Exit codes - -- *0* success -- *100* wrong usage -- *111* system call failed - -## Options - -- **-h** : prints this help. - -- **-z** : use color. - -- **-v** *verbosity* : increases/decreases the verbosity of the command. - * *1* : only print error messages. This is the default. - * *2* : also print warning messages. - * *3* : also print tracing messages. - * *4* : also print debugging messages. - -- **-l** *live* : changes the supervision directory of *service* to *live*. By default this will be `%%livedir%%`. The default can also be changed at compile time by passing the `--livedir=live` option to `./configure`. An existing absolute path is expected and should be within a writable and executable filesystem - likely a RAM filesystem—see [66-scandir](66-scandir.html). - -- **-T** *timeout* : specifies a general timeout (in milliseconds) passed to [66-start](66-start.html) or [66-stop](66-stop.html). By default the timeout is set to 0 (infinite). - -- **-f** : fork the process and lose the controlling terminal. This option should be used only for a shutdown process. - -- **-t** *tree* : only handles *service(s)* for *tree*. - -- **up** : sends an *up* signal to every *service* inside any *tree* processed by the command. - -- **down** : sends a *down* signal to every *service* inside any *tree* processed by the command. - -- **unsupervise** : Bring down all *services* contained into the *tree* and remove the corresponding directory of the *service* from the [scandir](66-scandir.html). - -## Initialization phase - -In case *up* was passed as option, *66-all* will automatically launch [66-init](66-init.html) to initiate all *services* of the *trees* processed by the command. As described above this means either any enabled tree for the user currently launching the process or just the tree passed with the **-t** option. diff --git a/doc/66-hpr.md b/doc/66-hpr.md index 3ba096f9..4cdcd1c3 100644 --- a/doc/66-hpr.md +++ b/doc/66-hpr.md @@ -55,7 +55,3 @@ The system is going down NOW! - **-w**: Only write a wtmp shutdown entry; does not actually shut down the system. - **-W**: Do not send a *wall* message to users before shutting down the system. Some other implementations of the `halt`, `poweroff` and `reboot` commands use the `‑‑no‑wall` long option to achieve this. - -## Notes - -`halt`, `poweroff` and `reboot` scripts that call *66‑hpr* with the relevant option ***should be copied or symlinked*** by the administrator into the binary directory of your system. diff --git a/doc/66-instate.md b/doc/66-instate.md deleted file mode 100644 index 3352fab7..00000000 --- a/doc/66-instate.md +++ /dev/null @@ -1,36 +0,0 @@ -title: The 66 Suite: 66-instate -author: Eric Vidal <eric@obarun.org> - -[66](index.html) - -[Software](https://web.obarun.org/software) - -[obarun.org](https://web.obarun.org) - -# 66-instate - -This command displays the contents of the service's *state* file. - -## Interface - -``` - 66-instate [ -h ] [ -z ] [ -t tree ] [ -l ] service -``` - -66-instate displays the contents of the service's *state* file. This file are used internally by the *66* tools to know runtime *service* information. This tool is purely a debug tool used by developers. - -## Exit codes - -- *0* success -- *100* wrong usage -- *111* system call failed - -## Options - -- **-h** : prints this help; - -- **-z** : use color. - -- **-t** *tree* : only searches the service at the specified *tree*, when the same service may be enabled in more trees. - -- **-l** : displays the contents of the associated logger's *state* file if any. diff --git a/doc/66-shutdown.md b/doc/66-shutdown.md index ae629c1a..06bacd2e 100644 --- a/doc/66-shutdown.md +++ b/doc/66-shutdown.md @@ -49,7 +49,7 @@ The *66-shutdown* program abides to the standards of the LSB-3.0.0 [shutdown](ht - **-h**: halt the system at the end of the shutdown sequence. -- **-p**: power off the system at the end of the shutdown sequence. This option is provided as an extension it is not required by the LSB interface. +- **-p**: power off the system at the end of the shutdown sequence. This option is provided as an extension it is not required-by the LSB interface. - **-r**: reboot the system at the end of the shutdown sequence. diff --git a/doc/66.md b/doc/66.md index e4d20615..9c259e0e 100644 --- a/doc/66.md +++ b/doc/66.md @@ -39,22 +39,22 @@ These options are available all commands except the `-t` options. In such cases, - **-T** *timeout*: specifies a general timeout (in milliseconds) passed to command. By default the timeout is set to 0 (infinite). -- **-t** *tree*: only handles *service(s)* for *tree*. +- **-t** *tree*: use *tree* as tree to use. ## Commands - [start](start.html): bring up services. - [stop](stop.html): bring down services. - [reload](reload.html): send a SIGHUP signal to services. -- [restart](restart.html): bring down then bring up again services. -- [free](free.html): bring down services and remove it from scandir(unsupervise). +- [restart](restart.html): bring down then bring up services. +- [free](free.html): bring down services and remove it from scandir. - [reconfigure](reconfigure.html): bring down, unsupervise, parse it again and bring up service. - [enable](enable.html): activate services for the next boot. - [disable](disable.html): deactivate services for the next boot. -- [configure](configure.html): manage services environment variables. -- [status](status.html): display services information. -- [resolve](resolve.html): display resolve file contents of the service. -- [state](state.html): display state file contents of the service. +- [configure](configure.html): manage service environment variables. +- [status](status.html): display service information. +- [resolve](resolve.html): display the service's resolve file contents. +- [state](state.html): display service's state file contents. - [remove](remove.html): remove service and cleanup all files belong to it within the system. - [signal](signal.html): send a signal to services. - [tree](tree.html): manage or see information of trees. @@ -88,8 +88,8 @@ For example, to enable a intanced service, you can do: ## Handling dependencies -Any dependency or required by dependency of a service or a tree chain will be automatically resolved. Manually defining chains of interdependencies is unnecessary. +Any dependency or required-by dependency of a service or a tree chain will be automatically resolved. Manually defining chains of interdependencies is unnecessary. -For instance, during the `stop` command, if the `FooA` service has a declared required by dependency on `FooB`, `FooB` will be automatically considered and stopped first when `FooA` is stopped. This process will run recursively until all required by dependencies are stopped. +For instance, during the `stop` command, if the `FooA` service has a declared required-by dependency on `FooB`, `FooB` will be considered and automatically stopped first when `FooA` is stopped. This process will run recursively until all required-by dependencies are stopped. -This applies to all `66` commands when it's necessary. +This applies to all `66` commands when it's necessary. \ No newline at end of file diff --git a/doc/configure.md b/doc/configure.md index 01c711ba..0b066f26 100644 --- a/doc/configure.md +++ b/doc/configure.md @@ -17,9 +17,9 @@ Handles an environment file and variable of a service depending on the options p configure [ -h ] [ -c version ] [ -s version ] [ -V|L ] [ -r key=value ] [ -i src,dst ] [ -e editor ] service ``` -This command allows to handle the configuration file of *service* found by default at `%%service_admconf%%/<service>`. Depending of the options passed, you can displays the contents of the file, see the current version used, edits the configuration file and so on. +This command allows to handle the [configuration](service-configuration-file.html) file of *service* found by default at `%%service_admconf%%/<service>`. Depending of the options passed, you can displays the contents of the file, see the current version used, edits the configuration file and so on. -The edition of the configuration file is the **default** option if neither option is passed. +The edition of the [configuration](service-configuration-file.html) file is the **default** option if neither option is passed. ## Options @@ -82,8 +82,10 @@ List the defined environment variables of the service `barz` of the module `foo@ ## Notes -Removing a *key* from the environment after the use can be handled by using an exclamation mark `!` at the begin of the value: +Removing a *key* from the environment variable during the execution time of the service can be handled by using an exclamation mark `!` at the begin of the value: ``` 66 configure -r 'CMD_ARGS=!-c /etc/nginx/nginx.conf -g "daemon off;"' nginx ``` + +It this case the `CMD_ARGS` variable is not define at the environment variable of the service. \ No newline at end of file diff --git a/doc/disable.md b/doc/disable.md index b93d0714..e932ae47 100644 --- a/doc/disable.md +++ b/doc/disable.md @@ -19,11 +19,11 @@ disable [ -h ] [ -S ] service(s) This tool expects to find an already enabled *service*. The targeted service(s) can also be stopped on the fly when disabling it with the **-S** option. Generally speaking this command is the strict opposite of the [enable](enable.html) tool. -The `66 -t` command option have no effect. `66` will detect automatically the associated *tree* of the service along its required by dependencies. +The `66 -t` command option have no effect. `66` will detect automatically the associated *tree* of the service along its required-by dependencies. In case of `module` service type, all services within the `module` are disabled. -Required by dependencies of services are also managed in chains. For example, if the `foo` service is disabled and required by `foobar`, `foobar` will also be disabled. This process occurs recursively. +required-by dependencies of services are also managed in chains. For example, if the `foo` service is disabled and required-by `foobar`, `foobar` will also be disabled. This process occurs recursively. Multiple *services* can be disabled by seperating their names with a space. @@ -31,7 +31,7 @@ Multiple *services* can be disabled by seperating their names with a space. - **-h**: prints this help. -- **-S**: stops the *service* on the fly directly after disabling it. If the state of the *service* is already down, this option will have no effect. This also applies to the required by dependencies of the service. +- **-S**: stops the *service* on the fly directly after disabling it. If the state of the *service* is already down, this option will have no effect. This also applies to the required-by dependencies of the service. ## Usage examples diff --git a/doc/instantiated-service.md b/doc/instantiated-service.md index 11506fd4..c2ac06c1 100644 --- a/doc/instantiated-service.md +++ b/doc/instantiated-service.md @@ -1,4 +1,4 @@ -title: The 66 Suite: module service creation +title: The 66 Suite: instantiatied service author: Eric Vidal <eric@obarun.org> [66](index.html) @@ -23,23 +23,23 @@ Example : [main] @type = classic + @version = 0.0.1 @description = "Launch @I" @user = ( root ) [start] - @build = auto - @execute = ( agetty -J 38400 @I } ) + @execute = ( agetty -J 38400 @I ) ``` -By using [66-enable tty@tty1](66-enable.html), the resulting file will then be: +By using [66 parse tty@tty1](parse.html) or any other `66` command which automatically the `66 parse` command, the resulting file will then be: ``` [main] @type = classic + @version = 0.0.1 @description = "Launch tty1" @user = ( root ) [start] - @build = auto - @execute = ( agetty -J 38400 tty1 } ) + @execute = ( agetty -J 38400 tty1 ) ``` diff --git a/doc/service-configuration-file.md b/doc/service-configuration-file.md index 4c549d23..635e7641 100644 --- a/doc/service-configuration-file.md +++ b/doc/service-configuration-file.md @@ -9,17 +9,17 @@ author: Eric Vidal <eric@obarun.org> # Service configuration file -If the `env` options at the `@options` field is set to a [frontend](frontend.html) service file, the `[environment]` section is copied to the `%%service_admconf%%/<service_name>/<service_version>/.service_name` file. +If the an `[environment]` section is set at service [frontend](frontend.html) file, the `[environment]` section is copied to the `%%service_admconf%%/<service_name>/<service_version>/.service_name` file. **Note**: The file name is prefixed with a dot. -This file is ***always*** written at [66-enable](66-enable.html) call. That means that every single changes made on this file will be lost. This is ensure you to you always have the environment variables set by upstream matching the needs of the service to be started properly. +This file is ***always*** written when the parser is called. That means that every single changes made on this file will be lost. This is ensure you to you always have the environment variables set by upstream matching the needs of the service to be started properly. However, to suit your needs you may want to change a value of a `key=value` pair or and a new one for a modified service. In that case, you need to make a copy of the upstream file to a new file at `%%service_admconf%%/<service_name>/<service_version>/` directories. To accomplish this task, you have two solutions: -- use the [66-env](66-env.html) tool. This is the best and easy way to do it. This tool will take for you about the creation of the new file(if it doesn't exist yet) and allows you to edit it directly. +- use the [configure](configure.html) command. This command should always be privilegied, this is the best and easy way to do it. This command create the new file if it doesn't exist and allows you to edit it directly. - copy manually the `%%service_admconf%%/<service_name>/<service_version>/.service_name` to `%%service_admconf%%/<service_name>/<service_version>/service_name`. The copied file can be named as you want. -At the service start process, the [execl-envfile](execl-envfile.html) tool will parses and reads every single file found at the `%%service_admconf%%/<service_name>/<service_version>/` directory in alphabetical order. That means that the upstream file will be read first than your modified file will be read. So, for a same `key=value` pair found at the upstream and modified file, the `key=value` pair coming from the modified file will be used. +At the service start process, the [execl-envfile](execl-envfile.html) program will parses and reads every single file found at the `%%service_admconf%%/<service_name>/<service_version>/` directory in **alphabetical order**. That means that the upstream file will be read before any other file define within `%%service_admconf%%/<service_name>/<service_version>/` directory. At the end of the process, for a same `key=value` pair found at the upstream and modified file, the `key=value` pair coming from the modified file read will be used. diff --git a/doc/stop.md b/doc/stop.md index cbeadc1f..acd6577c 100644 --- a/doc/stop.md +++ b/doc/stop.md @@ -17,23 +17,23 @@ This command stops one ore more *services*. stop [ -h ] [ -P ] service(s) ``` -This command expects to find an already running [scandir](scandir.html) and an already parsed service. If the state of the *service* is already down, the *stop* command does nothing but handles required by dependency except when passing the **-P** option. +This command expects to find an already running [scandir](scandir.html) and an already parsed service. If the state of the *service* is already down, the *stop* command does nothing but handles required-by dependency except when passing the **-P** option. Multiple *services* can be stopped by seperating their names with a space. -The `66 -t` command option have no effect. `66` will detect automatically the associated *tree* of the service along its required by dependencies. +The `66 -t` command option have no effect. `66` will detect automatically the associated *tree* of the service along its required-by dependencies. -In case of `module` *service* type, all *services* declared within the `module` will stop. The **-P** has no effect on the *services* within the `module` and only affects the module's required by dependencies. +In case of `module` *service* type, all *services* declared within the `module` will stop. The **-P** has no effect on the *services* within the `module` and only affects the module's required-by dependencies. ## Options - **-h**: prints this help. -- **-P**: Do not handle services required by dependencies. In such cases, the *stop* command will not attempt to stop the services that depend on the service, regardless of their current state. +- **-P**: Do not handle services required-by dependencies. In such cases, the *stop* command will not attempt to stop the services that depend on the service, regardless of their current state. ## Usage examples -Stop a service handling its required by dependencies. +Stop a service handling its required-by dependencies. ``` 66 stop foo ``` @@ -53,7 +53,7 @@ Services within a `module` can also be managed independently. If you need to sto where `foo@foobar` is the name of the `module` service and `foobaz` the name of the service inside the `module` service. -You also can use the `-P` option to avoid handling the required by dependencies of the service inside the `module` service +You also can use the `-P` option to avoid handling the required-by dependencies of the service inside the `module` service ``` 66 stop -P foo@foobar:foobaz diff --git a/doc/tree.md b/doc/tree.md index 830f5142..5804c3f9 100644 --- a/doc/tree.md +++ b/doc/tree.md @@ -17,7 +17,7 @@ This command handles a *tree* containing a set of *services*. tree [ -h ] create|admin|remove|enable|disable|current|status|resolve|init|start|stop|free tree ``` -The `tree` command functions similarly to services, wherein each *tree* can have dependencies or be required by another *tree*. These subcommands facilitate various actions such as creating, managing, activating, and checking the status of trees, among other functionalities, within the system. Additionally, it manages dependencies between different trees, enabling effective control and organization of *tree* structures. +The `tree` command functions similarly to services, wherein each *tree* can have dependencies or be required-by another *tree*. These subcommands facilitate various actions such as creating, managing, activating, and checking the status of trees, among other functionalities, within the system. Additionally, it manages dependencies between different trees, enabling effective control and organization of *tree* structures. The default tree named `%%default_treename%%` is provided. This *tree* is automatically created using [basic creation configuration](#basic-creation-configuration), with the key difference that this *tree* is enabled by default. The default name can also be changed at compile time by passing the `--with-default-tree-name=` option to `configure`. If the `%%default_treename%%` is removed, a simple invocation of a `66` command will create it again. @@ -115,7 +115,7 @@ After creation *tree* do not contain any services. You need to [associate](#asso valid fields for `-o` options are: - **depends=**: comma separated list of dependencies for *tree* or `none`. If the name of the *tree* passed as dependencies doesn't exist, it will be automatically created. - - **requiredby=**: comma separated list of trees required by *tree* or none. If the name of the *tree* passed as required by dependencies doesn't exist, it will be automatically created. + - **requiredby=**: comma separated list of trees required-by *tree* or none. If the name of the *tree* passed as required-by dependencies doesn't exist, it will be automatically created. - **groups=**: add *tree* to the specified groups. Accepted group are `boot`, `admin`, `user` and `none` —see [Groups behavior](#groups-behavior). - **allow=**: comma separated list of account to allow at *tree*. Account must be valid on the system. **name account is expected** not the corresponding `UID` of the account. The term `user` is also accepted to significate that all user neither root of the system can use *tree*. - **deny=**: comma separated list of account to deny at *tree*. Account must be valid on the system. **name account is expected** not the corresponding `UID` of the account. The term `user` is also accepted to significate that all user neither root of the system can use *tree*. @@ -154,12 +154,12 @@ If the *tree* does not exist, it is created and configured based on the options valid fields for `-o` options are: - - **depends=**: comma separated list of dependencies for *tree* or `none`. If the name of the *tree* passed as dependencies doesn't exist, it will be automatically created. - - **requiredby=**: comma separated list of trees required by *tree* or none. If the name of the *tree* passed as required by dependencies doesn't exist, it will be automatically created. - - **groups=**: add *tree* to the specified groups. Accepted group are `boot`, `admin`, `user` and `none` —see [Groups behavior](#groups-behavior). - - **allow=**: comma separated list of account to allow at *tree*. Account must be valid on the system. **name account is expected** not the corresponding `UID` of the account. The term `user` is also accepted to significate that all user neither root of the system can use *tree*. Any user not explicitly allowed is automatically denied for configuring the given *tree*. - - **deny=**: comma separated list of account to deny at *tree*. Account must be valid on the system. **name account is expected** not the corresponding `UID` of the account. The term `user` is also accepted to significate that all user neither root of the system can use *tree*. - - **clone=**: make a clone of *tree*. This create an exact copy of the configuration of the *tree*, with the exception that no services are associated with the cloned *tree*. The name of the clone **must not** already exists int the system. + - **depends=** *trees*: comma separated list of *trees* dependencies for *tree* or `none`. If the name of the *tree* passed as dependencies doesn't exist, it will be automatically created. + - **requiredby=**: comma separated list of *trees* required-by dependencies for *tree* or none. If the name of the *tree* passed as required-by dependencies doesn't exist, it will be automatically created. + - **groups=** *group*: add *tree* to the specified *group*. Accepted group are `boot`, `admin`, `user` and `none` —see [Groups behavior](#groups-behavior). + - **allow=** *user*: comma separated list of *user* account to allow at *tree*. Account must be valid on the system. **name account is expected** not the corresponding `UID` of the account. The term `user` is also accepted to significate that all user neither root of the system can use *tree*. Any user not explicitly allowed is automatically denied for configuring the given *tree*. + - **deny=** *user*: comma separated list of *user* account to deny at *tree*. Account must be valid on the system. **name account is expected** not the corresponding `UID` of the account. The term `user` is also accepted to significate that all user neither root of the system can use *tree*. + - **clone=** *name*: make a clone *name* of *tree*. This create an exact copy of the configuration of the *tree*, with the exception that no services are associated with the cloned *tree*. The name of the clone **must not** already exists int the system. #### Usage examples @@ -185,7 +185,7 @@ tree remove [ -h ] tree Services associated with the tree are switched to the *tree* marked current or to the `%%default_treename%%` in other cases. The state of services remains unchanged during the switch. -Tree dependencies, including required by dependencies, are managed. For instance, if `treefoo` is required by `treebar`, the dependencies of `treebar` are adjusted, removing `treefoo` as a dependency. This adjustment is done recursively, ensuring all interdependencies are updated. Therefore, the entire tree dependency graph is reconstructed. +Tree dependencies, including required-by dependencies, are managed. For instance, if `treefoo` is required-by `treebar`, the dependencies of `treebar` are adjusted, removing `treefoo` as a dependency. This adjustment is done recursively, ensuring all interdependencies are updated. Therefore, the entire tree dependency graph is reconstructed. #### Options @@ -234,7 +234,7 @@ This command is the exact opposite of `enable` command. tree disable [ -h ] tree ``` -Required by dependencies of trees are also managed in chains. For example, if the `treefoo` is disabled and required by `treebar`', `treebar` will also be disabled. This process occurs recursively. +required-by dependencies of trees are also managed in chains. For example, if the `treefoo` is disabled and required-by `treebar`', `treebar` will also be disabled. This process occurs recursively. #### Options @@ -343,7 +343,7 @@ Allowed : root Groups : admin Depends : \ └─None -Required by : \ +required by : \ └─session (Enabled) Contents : \ ├─dbus-log (pid=719, state=Enabled, type=classic, tree=global) @@ -370,7 +370,7 @@ Allowed : root Groups : admin Depends : \ └─None -Required by : \ +required by : \ └─session (Enabled) Contents : \ ├─openntpd (pid=736, state=Enabled, type=classic, tree=global) @@ -474,7 +474,7 @@ This command stops all **running services** within tree If *tree* is not specified, the command manages all services within all *enabled* trees available of the system. -Required by dependencies of *tree* are also managed in chains. For example, if the `treefoo` tree is stopped and required by `treebar`', `treebar` will be stopped first. This process occurs recursively. +required-by dependencies of *tree* are also managed in chains. For example, if the `treefoo` tree is stopped and required-by `treebar`', `treebar` will be stopped first. This process occurs recursively. #### Options @@ -505,7 +505,7 @@ This command stops and unsupervise tree. If *tree* is not specified, the command manages all services within all *enabled* trees available of the system. -Required by dependencies of *tree* are also managed in chains. For example, if the `treefoo` tree is stopped and required by `treebar`', `treebar` will be stopped first. This process occurs recursively. +required-by dependencies of *tree* are also managed in chains. For example, if the `treefoo` tree is stopped and required-by `treebar`', `treebar` will be stopped first. This process occurs recursively. #### Options diff --git a/doc/upgrade.md b/doc/upgrade.md index 05372c11..cb689f9e 100644 --- a/doc/upgrade.md +++ b/doc/upgrade.md @@ -32,7 +32,7 @@ For UI changes, a [Rosetta stone](#rosetta.md) is available. ### New fields have been added: -- `@requiredby`: Specifies which service is required by another service. For example, if service Sa declares service Sb as required by Sa's dependency, Sb won't start until Sa does. This allows building complex graph structures without modifying every frontend file of each service. +- `@requiredby`: Specifies which service is required-by another service. For example, if service Sa declares service Sb as required-by Sa's dependency, Sb won't start until Sa does. This allows building complex graph structures without modifying every frontend file of each service. - `@earlier`: Declares any service as an earlier one, starting as soon as the scandir is running, similar to tty12. This field is mandatory for services intended to start earlier. - `@intree`: Specifies the tree to use at enable/start time. @@ -80,11 +80,11 @@ The `module` directory structure has been completely redesigned for better intui A `module` cannot contain another `module`; instead, you can declare it as a dependency via `@depends` or `@requiredby`. These can also be specified through the `configure` `module` script. -Refer to the specific [module](#module-service.md) page for further information. +Refer to the specific [module](module-creation.html) page for further information. ## Trees -Trees now react as services regarding graph dependencies. You can declare a `tree` depending on or required by others. +Trees now react as services regarding graph dependencies. You can declare a `tree` depending on or required-by others. A default named `global` `tree` is provided. Services without their localization defined or users not specifying a `tree` to use will be defined within that `tree`. -- GitLab