From 994e51e34f3d421c68e2286e22e0dd84c6d610d4 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 26 Mar 2025 06:55:50 +0100 Subject: [PATCH] Convert **Note:** et al to GitHub Markdown alerts Signed-off-by: Joachim Wiberg --- .github/CONTRIBUTING.md | 3 +- README.md | 35 ++++++----- contrib/alpine/README.md | 3 +- contrib/debian/README.md | 8 ++- doc/build.md | 54 +++++++++-------- doc/cmdline.md | 10 ++-- doc/conditions.md | 30 ++++++---- doc/config.md | 121 ++++++++++++++++++++++----------------- doc/distro.md | 5 +- doc/plugins.md | 37 ++++++------ doc/service.md | 5 +- 11 files changed, 180 insertions(+), 131 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 89556d24..9ccced86 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -24,7 +24,8 @@ the maintainer(s) and make it easier for them to include your code. Coding Style ------------ -> **Tip:** Always submit code that follows the style of surrounding code! +> [!TIP] +> Always submit code that follows the style of surrounding code! First of all, lines are allowed to be longer than 72 characters these days. In fact, there exist no enforced maximum, but keeping it around diff --git a/README.md b/README.md index 158345be..9767e5f8 100644 --- a/README.md +++ b/README.md @@ -61,12 +61,13 @@ distributions: * [Alpine Linux](contrib/alpine/), and * [Debian GNU/Linux](contrib/debian/), also works on Ubuntu/Linux Mint -> **Note:** support for various Linux distributions does not mean Finit -> installs easily on all architectures. The bundled install scripts are -> examples for standard installations, tested on amd64 (x86_64) systems. -> Custom setups, e.g., for embedded systems, can be found in any of the -> following [Buildroot][] based examples: [myLinux][], [Infix][], or the -> plain [br2-finit-demo](https://github.com/troglobit/br2-finit-demo). +> [!NOTE] +> Support for various Linux distributions does not mean Finit installs +> easily on all architectures. The bundled install scripts are examples +> for standard installations, tested on amd64 (x86_64) systems. Custom +> setups, e.g., for embedded systems, can be found in the following +> [Buildroot][] based examples: [myLinux][], [Infix][], or the plain +> [br2-finit-demo](https://github.com/troglobit/br2-finit-demo). Example @@ -78,9 +79,10 @@ be placed in `/etc/finit.d/available` and enabled by an operator using the [initctl](#commands--status) tool. See the above mentioned Linux distributions, or [myLinux][]. -> **Note:** as of Finit v4.4, .conf lines can be broken up using the -> standard UNIX continuation character (`\`), also trailing comments are -> now supported. The latter means you need to escape any hashes used in +> [!TIP] +> As of Finit v4.4, `.conf` lines can be broken up using the standard +> UNIX continuation character (`\`), trailing comments are now also +> supported. The latter means you need to escape any hashes used in > directives and descriptions (`\#`). For more on this and examples, > see the [finit.conf(5)][] manual or [doc/config.md](doc/config.md). @@ -285,6 +287,7 @@ run [S] /path/to/ident -- task [2] /path/to/foo-init -- Initializing Foo board ``` +> [!TIP] > Notice the trick with an empty description to hide the call to `ident` > in the Finit progress output. @@ -367,9 +370,10 @@ The `initctl` tool has three commands to help debug and optimize the setup and monitoring of cgroups. See the `ps`, `top`, and `cgroup` commands for details. -> **Note:** systems that do not support cgroups, specifically version 2, -> are automatically detected. On such systems the above functionality -> is disabled early at boot. +> [!NOTE] +> Systems that do not support cgroups, specifically version 2, are +> automatically detected. On such systems the above functionality is +> disabled early at boot. Runparts & /etc/rc.local @@ -573,9 +577,10 @@ file must be used to tell Finit to stop and start it on `reload` and `runlevel` changes. If `<>` holds more [conditions](doc/conditions.md), these will also affect how a service is maintained. -> **Note:** even though it is possible to start services not belonging in -> the current runlevel these services will not be respawned automatically -> by Finit if they exit (crash). Hence, if the runlevel is 2, the below +> [!NOTE] +> Even though it is possible to start services not belonging in the +> current runlevel these services will not be respawned automatically by +> Finit if they exit (crash). Hence, if the runlevel is 2, the below > Dropbear SSH service will not be restarted if it is killed or exits. The `status` command is the default, it displays a quick overview of all diff --git a/contrib/alpine/README.md b/contrib/alpine/README.md index ea15e3af..f88ea5fd 100644 --- a/contrib/alpine/README.md +++ b/contrib/alpine/README.md @@ -1,7 +1,8 @@ HowTo: Finit on Alpine Linux 3.4...3.19 ======================================= -> **Blog** https://troglobit.com/post/2021-02-12-alpine-linux-with-finit/ +> [!TIP] +> https://troglobit.com/post/2021-02-12-alpine-linux-with-finit/ HowTo use Finit to boot an [Alpine Linux][] system. It is assumed that the user has already installed make, a compiler, C library header files, diff --git a/contrib/debian/README.md b/contrib/debian/README.md index d1bb6435..dc04c68c 100644 --- a/contrib/debian/README.md +++ b/contrib/debian/README.md @@ -20,8 +20,9 @@ tools pre-systemd work as intended. root@debian:~# apt install initscripts console-setup -> **Note:** as of Debian 11 (Bullseye), libuev and libite are part of -> the main section of Debian. So just install the -dev packages :) +> [!TIP] +> As of Debian 11 (Bullseye), libuev and libite are part of the main +> section of Debian. So just install the -dev packages :) The following script can then be used to configure, build, install and set up your system to run Finit: @@ -47,7 +48,8 @@ comands to `initctl`, followed by `reload` to activate your changes. You can also use a standard [/etc/rc.local](rc.local) for one-shot tasks and initialization like keyboard language etc. -> **NOTE:** X Window system, you may need to `sudo apt install elogind` +> [!NOTE] +> For the X Window system, you may need to `sudo apt install elogind` > (Bullseye and later), followed by `initctl reload` to activate it (it > is enabled by default), and logout/login again. The elogind daemon > ensures a regular non-root user can start and interact with an X diff --git a/doc/build.md b/doc/build.md index 87e80e14..e3b6b74c 100644 --- a/doc/build.md +++ b/doc/build.md @@ -1,5 +1,5 @@ -Building -======== +Building Finit +============== * [Introduction](#introduction) * [Configure](#configure) @@ -17,14 +17,15 @@ optional plugins to enable. It depends on two external libraries: - [libuEv][], the event loop - [libite][] (-lite), much needed frog DNA -**NOTE:** Most free/open source software that uses `configure` default - to install to `/usr/local`. However, some Linux distributions do no - longer search that path for installed software, e.g. Fedora and Alpine - Linux. To get finit's configure script to find its dependencies you - have to help the `pkg-config` tool a bit if you do not change the - default prefix path: - - PKG_CONFIG_LIBDIR=/usr/local/lib/pkgconfig ./configure +> [!IMPORTANT] +> Most free/open source software packages that use `configure` default +> to install to `/usr/local`. However, some Linux distributions do no +> longer search that path for installed software, e.g. Fedora and Alpine +> Linux. To get finit's configure script to find its dependencies you +> have to help the `pkg-config` tool a bit if you do not change the +> default prefix path: +> +> PKG_CONFIG_LIBDIR=/usr/local/lib/pkgconfig ./configure The configure script checks for all dependencies, including the correct version of the above mentioned libraries. Currently required versions: @@ -71,12 +72,13 @@ Below are a few of the main switches to configure: For more configure flags, see ./configure --help -> **Note:** the configure script is not available in the GIT sources. It is -> however included in (officially supported) released tarballs. The -> idea is that you should not need GNU autotools to build, only the -> above mentioned dependencies, a POSIX shell, a C compiler and make. -> Any contributing to Finit can generate it from `configure.ac` using -> the `autogen.sh` script. +> [!NOTE] +> The configure script is not available in the GIT sources. It is +> however included in (officially supported) released tarballs. The +> idea is that you should not need GNU autotools to build, only the +> above mentioned dependencies, a POSIX shell, a C compiler and make. +> Any contributing to Finit can generate it from `configure.ac` using +> the `autogen.sh` script. Example @@ -115,10 +117,11 @@ Linux config to: CONFIG_UEVENT_HELPER_PATH="/sbin/mdev" -**Note:** If you run into problems starting Finit, take a look at - `finit.c`. One of the most common problems is a custom Linux kernel - build that lack `CONFIG_DEVTMPFS`. Another is too much cruft in the - system `/etc/fstab`. +> [!TIP] +> If you run into problems starting Finit, take a look at `finit.c`. +> One of the most common problems is a custom Linux kernel build that +> lack `CONFIG_DEVTMPFS`. Another is too much cruft in the system +> `/etc/fstab`. Running @@ -157,8 +160,10 @@ enabled. The default Finit rescue mode configuration is installed into By default the a root shell, without login, is started. -> **Note:** in this mode `initctl` will not work. Use the `-f` flag to -> force `reboot`, `shutdown`, or `poweroff`. +> [!IMPORTANT] +> In rescue mode `initctl` will not work, the same goes for `reboot`, +> `shutdown`, and `poweroff` commands, provided they are the Finit +> versions of these commands. Use the `-f` flag to force the action. Debugging @@ -187,8 +192,9 @@ kernel usually reboots: `configure --enable-emergency-shell`. However, the behavior of Finit is severely limited when this is enabled, so use it only for debugging start up issues when Finit crashes. -**NOTE:** Neither of these options should be enabled on production - systems since they can potentially give a user root access. +> [!CAUTION] +> None of these options should be enabled on production systems since +> they can potentially give a user root access. [1]: ftp://troglobit.com/finit/finit-4.3.tar.gz diff --git a/doc/cmdline.md b/doc/cmdline.md index 33426633..f79e1702 100644 --- a/doc/cmdline.md +++ b/doc/cmdline.md @@ -4,10 +4,11 @@ Tips & Tricks with the kernel cmdline This document summarizes the different boot parameters that can be passed on the Linux kernel command line. Not limited to Finit. -The `bool` setting is one of `on, off, true false, 1, 0`. +> [!IMPORTANT] +> Remember to use `--` to separate kernel parameters from parameters to +> init. E.g., `init=/sbin/finit -- finit.debug rescue` -> **NOTE:** remember to use `--` to separate kernel parameters from -> parameters to init. E.g., `init=/sbin/finit -- finit.debug rescue` +The `bool` setting is one of `on, off, true false, 1, 0`. * `debug`: Enable kernel debug. Debug messages are printed to the console until Finit starts up, unless `loglevel=7` (below) is used. @@ -30,7 +31,8 @@ The `bool` setting is one of `on, off, true false, 1, 0`. Very useful for selecting different boot modes, e.g. manufacturing test, firmware upgrade, or rescue mode. - > Note: `` conditions cannot be cleared with `initctl`! +> [!NOTE] +> `` conditions cannot be cleared with `initctl`! * `finit.config=/path/to/alternative/finit.conf`: override the compile-time bootstrap config file, default: diff --git a/doc/conditions.md b/doc/conditions.md index 207b8506..1e5aae78 100644 --- a/doc/conditions.md +++ b/doc/conditions.md @@ -47,9 +47,10 @@ both the `pid/setupd` *and* `pid/zebra` conditions are satisfied. A `pid/` condition is satisfied by the corresponding service's PID file being created, i.e., the service's default readiness notification. -**NOTE:** Conditions also stop services when a condition is no longer - asserted. I.e., if the Zebra process above stops or restarts, netd - will also stop or restart. +> [!IMPORTANT] +> Conditions also stop services when a condition is no longer asserted. +> I.e., if the `zebra` process above stops or restarts, `netd` will also +> stop or restart. Another example is `dropbear`, it does not support `SIGHUP`, but we can also see optional sourcing of arguments from an environment file: @@ -106,11 +107,16 @@ on this, see [Internals](#internals).) Thus, after a reconfiguration it is up to the "owner" of the condition to convey the new (or possibly unchanged) state of it. -> **Note:** For `pid/` conditions it is expected that services "touch" -> or recreate their PID file on `SIGHUP`. - Static (one-shot) conditions, like `usr/`, never enter the `flux` state. +> [!IMPORTANT] +> For `pid/` conditions it is expected that the service reassert, i.e., +> "touch" or recreate, their PID file on `SIGHUP`. This can be done by +> calling `utimensat()` on the PID file. Provided, of course, that the +> service supports reloading on `SIGHUP`, otherwise it will be restarted +> by Finit when they instead exit on the signal. For such services, use +> `` to tell Finit the service does not support `SIGHUP`. + Built-in Conditions ------------------- @@ -171,9 +177,10 @@ Built-in conditions: - `boot/arg` - `dev/node` and `dev/dir/node` -**Note:** `up` means administratively up, the interface flag `IFF_UP`. - `running` is the `IFF_RUNNING` flag, meaning operatively up. The - difference is that `running` tells if the NIC has link. +> [!NOTE] +> Here, `up` means administratively up, the interface flag `IFF_UP`. +> `running` is the `IFF_RUNNING` flag, meaning operatively up. The +> difference is that `running` tells if the NIC has link. Composition @@ -205,8 +212,9 @@ the service stanza for the daemon. It is far from optimal since any synchronization of depending services may fail due to the daemon not having reinitialized/created their IPC sockets, or similar. -> **Note:** in versions of Finit prior to v4, the PID conditions were -> called 'svc' conditions, and they were far more complex. +> [!NOTE] +> In versions of Finit prior to v4, the PID conditions were called 'svc' +> conditions, and they were far more complex. Debugging diff --git a/doc/config.md b/doc/config.md index 3549c4bd..bf5fb293 100644 --- a/doc/config.md +++ b/doc/config.md @@ -46,8 +46,9 @@ Plugins start at [hook points](plugins.md#hooks) and can run various set up, or install event handlers that later provide runtime services, e.g., PID file monitoring, or [conditions](conditions.md). -> **Tip:** see [SysV Init Compatibility](#sysv-init-compatibility) for -> help to quickly get going with an existing SysV or BusyBox init setup. +> [!TIP] +> See [SysV Init Compatibility](#sysv-init-compatibility) for help to +> quickly get going with an existing SysV or BusyBox init setup. ### Configuration Files @@ -127,8 +128,9 @@ properties of the `run` statement. For an example on the relation of `service` and `run` statements, and dependency handling between them, see [Conditional Loading](#conditional-loading), below. -> **Note:** the `finit.conf` and `finit.d/` names are only defaults. -> They can be changed at compile-time with two `configure` options: +> [!NOTE] +> The names `finit.conf` and `finit.d/` are only defaults. They can be +> changed at compile-time with two `configure` options: > `--with-config=/etc/foo.conf` and `--with-rcsd=/var/foo.d`. > > They can also be overridden from the [kernel command line](cmdline.md) @@ -187,8 +189,9 @@ above, provided their respective mount point exists. With all filesystems mounted, Finit calls `swapon`. -> **Tip:** to see what happens when all filesystems are mounted, have a -> look at the [`bootmisc.so` plugin](plugins.md). +> [!TIP] +> To see what happens when all filesystems are mounted, have a look at +> the [`bootmisc.so` plugin](plugins.md). At shutdown, and after having stopped all services and other lingering processes have been killed, filesystems are unmounted in the reverse @@ -231,11 +234,12 @@ Networking is expected to be available in all runlevels except: S, 1 file, Finit calls `ifup -a` -- at the very least the loopback interface is brought up. -> **Note:** when moving from runlevel S to 2, all run/task/services that -> were constrained to runlevel S only are dropped from bookkeeping. So -> when reaching the prompt, `initctl` will not show these run/tasks. -> This is a safety mechanism to prevent bootstrap-only tasks from -> accidentally being run again. E.g., `console-setup.sh` above. +> [!NOTE] +> When moving from runlevel S to 2, all run/task/services that were +> constrained to runlevel S only are dropped from bookkeeping. So when +> reaching the prompt, `initctl` will not show these run/tasks. This is +> a safety mechanism to prevent bootstrap-only tasks from accidentally +> being run again. E.g., `console-setup.sh` above. ### Managing Services @@ -322,7 +326,8 @@ the `ps` command we can see that the process is started with: foo -n --extra-arg=bar -s -x -> **Note:** the leading `-` determines if Finit should treat a missing +> [!NOTE] +> The leading `-` in `env:` determines if Finit should treat a missing > environment file as blocking the start of the service or not. When > `-` is used, a missing environment file does *not* block the start. @@ -384,12 +389,13 @@ To synchronize two services the following condition can be used: For details on the syntax and options, see below. -> **Note:** on `initctl reload` conditions are normally set in "flux", -> while figuring out which to stop, start or restart. Services that -> need to be restarted have their `ready` condition removed prior to -> Finit sending them SIGHUP (if they support that), or stop-starting -> them. A daemon is expected to reassert its readiness, e.g. systemd -> style daemons to write `READY=1\n`. +> [!NOTE] +> On `initctl reload` conditions are set in "flux", while figuring out +> which to stop, start or restart. Services that need to be restarted +> have their `ready` condition removed prior to Finit sending them +> SIGHUP (if they support that), or stop-starting them. A daemon is +> expected to reassert its readiness, e.g. systemd style daemons to +> write `READY=1\n`. > > However, the s6 notify mode does not support this because in s6 you > are expected to close your notify descriptor after having written @@ -429,9 +435,10 @@ example employs a wrapper script in `/etc/start.d`. # Execute the program exec /usr/bin/program $OPTIONS -> **Note:** the example sets `` to denote that it doesn't support -> `SIGHUP`. That way Finit will stop/start the service -> instead of sending SIGHUP at restart/reload events. +> [!NOTE] +> The example sets `` to denote that it doesn't support `SIGHUP`. +> That way Finit will stop/start the service instead of sending SIGHUP +> at restart/reload events. Templating @@ -514,6 +521,7 @@ A daemon using `SCHED_RR` currently need to run outside the default cgroups. service [...] <...> cgroup.root /path/to/daemon arg -- Real-Time process +> [!NOTE] > Linux cgroups and details surrounding values are not explained in the > Finit documentation. The Linux admin-guide cover this well: > @@ -539,12 +547,9 @@ service name:sysklogd [S123456789] \ ``` The .conf files `/etc/finit.conf` and `/etc/finit.d/*` support the -following directives: - - -> **Note:** not all directives are available in `/etc/finit.d/*.conf` -> and some directives are only available at bootstrap, runlevel `S`, -> see [Limitations](#limitations) below for details. +following directives. Some directives have restrictions, e.g., only +available at bootstrap, runlevel `S`, see [Limitations](#limitations) +below for details. ### Hostname @@ -556,7 +561,8 @@ the contents of that file is used. Deprecated. We recommend using `/etc/hostname` instead. -> **Note:** only read and executed in runlevel S (bootstrap). +> [!NOTE] +> Only read and executed in runlevel S (bootstrap). ### Kernel Modules @@ -574,7 +580,8 @@ BusyBox mdev tool, add to `/etc/mdev.conf`: $MODALIAS=.* root:root 0660 @modprobe -b "$MODALIAS" -> **Note:** only read and executed in runlevel S (bootstrap). +> [!NOTE] +> Only read and executed in runlevel S (bootstrap). ### Networking @@ -587,7 +594,8 @@ Deprecated. We recommend using dedicated task/run stanzas per runlevel, or `/etc/network/interfaces` if you have a system with `ifupdown`, like Debian, Ubuntu, Linux Mint, or an embedded BusyBox system. -> **Note:** only read and executed in runlevel S (bootstrap). +> [!NOTE] +> Only read and executed in runlevel S (bootstrap). ### Alternate finit.d/ @@ -608,8 +616,9 @@ another set of .conf files, e.g.: rcsd /etc/factory.d -> **Note:** this directive is only available from the top-level -> bootstrap .conf file. +> [!NOTE] +> This directive is only available from the top-level bootstrap .conf +> file, usually `/etc/finit.conf`. ### Resource Limits @@ -651,7 +660,8 @@ Finit disables networking in this mode. *Default:* 2 -> **Note:** only read and executed in runlevel S (bootstrap). +> [!NOTE] +> Only read and executed in runlevel S (bootstrap). ### One-shot Commands (sequence) @@ -665,10 +675,11 @@ optional arguments and description. `run` commands are guaranteed to be completed before running the next command. Useful when serialization is required. -> **Warning:** try to avoid the `run` command. It blocks much of the -> functionality in Finit, like (re)starting other (perhaps crashing) -> services while a `run` task is executing. Use other synchronization -> mechanisms instead, like conditions. +> [!WARNING] +> Try to avoid the `run` command. It blocks much of the functionality +> in Finit, like (re)starting other (perhaps crashing) services while a +> `run` task is executing. Use other synchronization mechanisms +> instead, like conditions. Incomplete list of unsupported `initctl` commands in `run` tasks: @@ -723,7 +734,8 @@ file, but rather watch that file for the resulting forked-off PID. This syntax also works for forking daemons that do not have a command line option to run it in the foreground, more on this below in `service`. -> **Tip:** see also [SysV Init Compatibility](#sysv-init-compatibility). +> [!TIP] +> See also [SysV Init Compatibility](#sysv-init-compatibility). ### Services @@ -736,7 +748,8 @@ exits prematurely. Finit tries to restart services that die, by default they have to be manually restarted with `initctl restart NAME`. The limits controlling this are configurable, see the options below. -> **Tip:** to allow endless restarts, see below option `respawn` +> [!TIP] +> To allow endless restarts, see below option `respawn` For daemons that support it, we recommend appending `--foreground`, `--no-background`, `-n`, `-F`, or similar command line argument to @@ -1033,8 +1046,9 @@ before continuing. None of them can issue commands to start, stop, or restart other services. Also, ensure all your services and programs either terminate or start in the background or you will block Finit. -> **Note:** `runparts` scripts are only read and executed in runlevel S. -> See [hook scripts](plugins.md#hooks) for other ways to run scripts at +> [!NOTE] +> `runparts` scripts are only read and executed in runlevel S. See +> [hook scripts](plugins.md#hooks) for other ways to run scripts at > certain points during the complete lifetime of the system. **Recommendations:** @@ -1307,8 +1321,9 @@ This rescue mode can be disabled at configure time using: The rescue mode comes in two flavors; *traditional* and *fallback*. -> **Note:** in this mode `initctl` will not work. Use the `-f` flag to -> force `reboot`, `shutdown`, or `poweroff`. +> [!NOTE] +> In this mode `initctl` will not work. Use the `-f` flag to force +> `reboot`, `shutdown`, or `poweroff`. ### Traditional @@ -1320,11 +1335,12 @@ program is used instead. If a successful login is made, or if the user exits (Ctrl-D), the rescue mode is ended and the system boots up normally. -> **Note:** the bundled sulogin in Finit can at configure time be given -> another user than the default (root). If the sulogin user does not -> have a password, or __the account is locked__, the user is presented -> with a password-less `"Press enter to enter maintenance mode."`, -> prompt which opens up a root shell. +> [!WARNING] +> The bundled sulogin in Finit can at configure time be given another +> user than the default (root). If the sulogin user does not have a +> password, or __the account is locked__, the user is presented with a +> prompt: `"Press enter to enter maintenance mode."`, which will open +> up a root shell *without prompting for password*! ### Fallback @@ -1372,10 +1388,11 @@ These can now also be set in any `.conf` file in `/etc/finit.d`. There is, however, nothing preventing you from having all configuration settings in `/etc/finit.conf`. -> **Note:** The `/etc/finit.d` directory was previously the default -> Finit [runparts](#run-parts-scripts) directory. Finit >=v4.0 -> no longer has a default `runparts` directory, make sure to -> update your setup, or the finit configuration, accordingly. +> [!IMPORTANT] +> The default `rcsd`, i.e., `/etc/finit.d`, was previously the Finit +> [runparts](#run-parts-scripts) directory. Finit >=v4.0 no longer has +> a default `runparts` directory, make sure to update your setup, or the +> finit configuration, accordingly. Watchdog diff --git a/doc/distro.md b/doc/distro.md index cdc0c646..2de9a088 100644 --- a/doc/distro.md +++ b/doc/distro.md @@ -34,8 +34,9 @@ build time: ./configure --with-rcsd=/etc/init.d --with-config=/etc/init.d/init.conf ``` -> **Note:** remember `--prefix` et al as well, the default is likely -> *not* what you want. See the [build docs][1] for details. +> [!IMPORTANT] +> Remember `--prefix` et al as well, the default is likely *not* what +> you want. See the [build docs][1] for details. The resulting directory structure is depicted below. Please notice how `/etc/finit.conf` now resides in the same sub-directory as a non-symlink diff --git a/doc/plugins.md b/doc/plugins.md index 81ef05ec..bec8d5fc 100644 --- a/doc/plugins.md +++ b/doc/plugins.md @@ -35,9 +35,10 @@ For your convenience a set of *optional* plugins are available: files distributed with Finit. It is read first but can be overridden by any of the standard tmpfiles.d directories, e.g. `/etc/tmpfiles.d`. - > **Note:** On an embedded system both `/var` and `/run` can be `tmpfs` - > RAM disks and `/dev` is usually a `devtmpfs`. This must be defined - > in the `/etc/fstab` file and in the Linux kernel config. +> [!NOTE] +> On an embedded system both `/var` and `/run` can be `tmpfs` RAM +> disks and `/dev` is usually a `devtmpfs`. This must be defined in +> the `/etc/fstab` file and in the Linux kernel config. * *dbus.so*: Setup and start system message bus, D-Bus, at boot. _Optional plugin._ @@ -63,8 +64,9 @@ For your convenience a set of *optional* plugins are available: Enabled by default. - > See the [Services](config.md#services) section in the configuration - > guide for an example how to run `mdevd`, alternative to plain mdev. +> [!TIP] +> See the [Services](config.md#services) section in the configuration +> guide for an example how to run `mdevd`, alternative to plain mdev. * *rtc.so*: Restore and save system clock from/to RTC on boot/halt. Enabled by default. @@ -89,16 +91,17 @@ For your convenience a set of *optional* plugins are available: set index 1234 - **Note:** unlike the traditional .conf `module` directive, which load - any listed module immediately, this plugin creates a background `task` - which load the module(s) in the background. The program is modprobe, - `/sbin/modprobe`, which you can override per .conf file: + Since these tasks run in the background, they return `[ OK ]` at boot, + unless the modprobe tool does not exist. Check syslog for warnings + and the actual status of the operation using `initctl`. - set modprobe /path/to/maybe-a-modprobe-wrapper - - Since these tasks run in the background, they usually return `[ OK ]` - at boot, unless the modprobe tool does not exist. Check syslog for - warnings and the actual status of the operation using `initctl`. +> [!IMPORTANT] +> Unlike the traditional .conf `module` directive, which load any listed +> module immediately, this plugin creates a background `task` which load +> the module(s) in the background. The program is modprobe, +> `/sbin/modprobe`, which you can override per .conf file: +> +> set modprobe /path/to/maybe-a-modprobe-wrapper * *netlink.so*: Listens to Linux kernel Netlink events for gateway and interfaces. These events are then sent to the Finit service monitor @@ -158,8 +161,10 @@ hook points: EOF $ chmod +x /libexec/finit/hook/sys/down/foo.sh -> **Note:** to use hook scripts, even for pre-bootstrap and pre-shutdown -> tasks, you must build with `configure --enable-hook-scripts-plugin`. +> [!IMPORTANT] +> To use hook scripts, even for pre-bootstrap and pre-shutdown tasks, +> you must build with `configure --enable-hook-scripts-plugin`. + ### Bootstrap Hooks diff --git a/doc/service.md b/doc/service.md index 1678c82c..3d2b4b58 100644 --- a/doc/service.md +++ b/doc/service.md @@ -22,8 +22,9 @@ Finit can *not* start and monitor a daemon that: | ✔ | No | No | Yes, optionally | | ✘ | Yes | No | No | -> **Note:** PID files is one mechanism used to assert conditions to -> synchronize the start and stop of other, dependent, services. +> [!NOTE] +> PID files is one mechanism used to assert conditions to synchronize +> the start and stop of other, dependent, services. ### Forks to Background w/ PID File