From: Yu Watanabe Date: Wed, 28 Jan 2026 13:52:46 +0000 (+0900) Subject: docs: update external links X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0922f62126297e59c03bc9e1b1f4bd6c362604ba;p=thirdparty%2Fsystemd.git docs: update external links - fix many links and drop unreachable links, - always use https rather than http if supported, --- diff --git a/docs/API_FILE_SYSTEMS.md b/docs/API_FILE_SYSTEMS.md index 3ef90773d92..2ed4b672ca0 100644 --- a/docs/API_FILE_SYSTEMS.md +++ b/docs/API_FILE_SYSTEMS.md @@ -55,9 +55,9 @@ systemctl mask dev-hugepages.mount ``` This has the effect that the huge memory page API FS is not mounted by default, starting with the next boot. -See [Three Levels of Off](http://0pointer.de/blog/projects/three-levels-of-off.html) for more information on masking. +See [Three Levels of Off](https://0pointer.de/blog/projects/three-levels-of-off.html) for more information on masking. -The systemd service [systemd-remount-fs.service](http://www.freedesktop.org/software/systemd/man/systemd-remount-fs.service.html) +The systemd service [systemd-remount-fs.service](https://www.freedesktop.org/software/systemd/man/latest/systemd-remount-fs.service.html) is responsible for applying mount parameters from `/etc/fstab` to the actual mounts. ## Why are you telling me all this? I just want to get rid of the tmpfs backed /tmp! diff --git a/docs/AUTOMATIC_BOOT_ASSESSMENT.md b/docs/AUTOMATIC_BOOT_ASSESSMENT.md index b8150b56c34..ae1d1cdb1b6 100644 --- a/docs/AUTOMATIC_BOOT_ASSESSMENT.md +++ b/docs/AUTOMATIC_BOOT_ASSESSMENT.md @@ -21,12 +21,12 @@ other boot loaders or take actions outside of the boot loader. Here's a brief overview of the complete set of components: * The - [`kernel-install(8)`](https://www.freedesktop.org/software/systemd/man/kernel-install.html) + [`kernel-install(8)`](https://www.freedesktop.org/software/systemd/man/latest/kernel-install.html) script can optionally create boot loader entries that carry an initial boot counter (the initial counter is configurable in `/etc/kernel/tries`). * The - [`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/systemd-boot.html) + [`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-boot.html) boot loader optionally maintains a per-boot-loader-entry counter described by the [UAPI.1 Boot Loader Specification](https://uapi-group.org/specifications/specs/boot_loader_specification/#boot-counting) that is decreased by one on each attempt to boot the entry, prioritizing @@ -34,27 +34,27 @@ Here's a brief overview of the complete set of components: counter of zero when choosing the entry to boot. * The `boot-complete.target` target unit (see - [`systemd.special(7)`](https://www.freedesktop.org/software/systemd/man/systemd.special.html)) + [`systemd.special(7)`](https://www.freedesktop.org/software/systemd/man/latest/systemd.special.html)) serves as a generic extension point both for units that are necessary to consider a boot successful (e.g. `systemd-boot-check-no-failures.service` described below), and units that want to act only if the boot is successful (e.g. `systemd-bless-boot.service` described below). * The - [`systemd-boot-check-no-failures.service(8)`](https://www.freedesktop.org/software/systemd/man/systemd-boot-check-no-failures.service.html) + [`systemd-boot-check-no-failures.service(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-boot-check-no-failures.service.html) service is a simple service health check tool. When enabled it becomes an indirect dependency of `systemd-bless-boot.service` (by means of `boot-complete.target`, see below), ensuring that the boot will not be considered successful if there are any failed services. * The - [`systemd-bless-boot.service(8)`](https://www.freedesktop.org/software/systemd/man/systemd-bless-boot.service.html) + [`systemd-bless-boot.service(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-bless-boot.service.html) service automatically marks a boot loader entry, for which boot counting as mentioned above is enabled, as "good" when a boot has been determined to be successful, thus turning off boot counting for it. * The - [`systemd-bless-boot-generator(8)`](https://www.freedesktop.org/software/systemd/man/systemd-bless-boot-generator.html) + [`systemd-bless-boot-generator(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-bless-boot-generator.html) generator automatically pulls in `systemd-bless-boot.service` when use of `systemd-boot` with boot counting enabled is detected. @@ -189,7 +189,7 @@ are a couple of recommendations. Depending on the setup, it may be most convenient to pull in such units through normal enablement symlinks, or during early boot using a - [`generator`](https://www.freedesktop.org/software/systemd/man/systemd.generator.html), + [`generator`](https://www.freedesktop.org/software/systemd/man/latest/systemd.generator.html), or even during later boot. In the last case, care must be taken to ensure that the start job is created before `boot-complete.target` has been reached. @@ -199,9 +199,9 @@ are a couple of recommendations. in. Such unit would be typically wanted (or required) by one of the - [`bootup`](https://www.freedesktop.org/software/systemd/man/bootup.html) targets, + [`bootup`](https://www.freedesktop.org/software/systemd/man/latest/bootup.html) targets, for example, `multi-user.target`. To avoid potential loops due to conflicting - [default dependencies](https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Default%20Dependencies) + [default dependencies](https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html#Default%20Dependencies) ordering, it is recommended to also add an explicit dependency (e.g. `After=multi-user.target`) to the unit. This overrides the implicit ordering and allows `boot-complete.target` to start after the given bootup target. diff --git a/docs/BLOCK_DEVICE_LOCKING.md b/docs/BLOCK_DEVICE_LOCKING.md index a3edd80829b..4067d134852 100644 --- a/docs/BLOCK_DEVICE_LOCKING.md +++ b/docs/BLOCK_DEVICE_LOCKING.md @@ -88,7 +88,7 @@ during normal operation, i.e. while file systems on it are mounted for application use. The [`udevadm -lock`](https://www.freedesktop.org/software/systemd/man/udevadm.html) command +lock`](https://www.freedesktop.org/software/systemd/man/latest/udevadm.html) command is provided to lock block devices following this scheme from the command line, for the use in scripts and similar. (Note though that it's typically preferable to use native support for block device locking in tools where that's diff --git a/docs/BOOT_LOADER_INTERFACE.md b/docs/BOOT_LOADER_INTERFACE.md index 5c409b86684..a2e70fc429a 100644 --- a/docs/BOOT_LOADER_INTERFACE.md +++ b/docs/BOOT_LOADER_INTERFACE.md @@ -107,14 +107,14 @@ Variables will be listed below using the Linux efivarfs naming, * `1 << 5` → The boot loader supports looking for boot menu entries in the Extended Boot Loader Partition. * `1 << 6` → The boot loader supports passing a random seed to the OS. * `1 << 7` → The boot loader supports loading of drop-in drivers from the `/EFI/systemd/drivers/` directory on the ESP, - see [`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/systemd-boot.html). + see [`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-boot.html). * `1 << 8` → The boot loader supports the `sort-key` field defined by the [Boot Loader Specification](https://uapi-group.org/specifications/specs/boot_loader_specification). * `1 << 9` → The boot loader supports the `@saved` pseudo-entry * `1 << 10` → The boot loader supports the `devicetree` field defined by the [Boot Loader Specification](https://uapi-group.org/specifications/specs/boot_loader_specification). * `1 << 11` → The boot loader support automatic enrollment of SecureBoot keys, - see [`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/systemd-boot.html). + see [`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-boot.html). * `1 << 12` → The boot loader will set EFI variable `ShimRetainProtocol-605dab50-e046-4300-abb6-3dd810dd8b23` for `shim` to make its protocol available to the booted binary. * `1 << 13` → The boot loader honours `menu-disabled` option when set. @@ -206,6 +206,6 @@ and possibly show nicely localized names for them in UIs. [UAPI.1 Boot Loader Specification](https://uapi-group.org/specifications/specs/boot_loader_specification)
[UAPI.2 Discoverable Partitions Specification](https://uapi-group.org/specifications/specs/discoverable_partitions_specification)
-[`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/systemd-boot.html)
-[`bootctl(1)`](https://www.freedesktop.org/software/systemd/man/bootctl.html)
-[`systemd-gpt-auto-generator(8)`](https://www.freedesktop.org/software/systemd/man/systemd-gpt-auto-generator.html) +[`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-boot.html)
+[`bootctl(1)`](https://www.freedesktop.org/software/systemd/man/latest/bootctl.html)
+[`systemd-gpt-auto-generator(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-gpt-auto-generator.html) diff --git a/docs/BUILDING_IMAGES.md b/docs/BUILDING_IMAGES.md index 60b7369a045..91ec544d069 100644 --- a/docs/BUILDING_IMAGES.md +++ b/docs/BUILDING_IMAGES.md @@ -26,7 +26,7 @@ Typically the same OS image shall be deployable in multiple instances, and each instance should automatically acquire its own identifying credentials on first boot. For that it's essential to: -1. Remove the [`/etc/machine-id`](https://www.freedesktop.org/software/systemd/man/machine-id.html) +1. Remove the [`/etc/machine-id`](https://www.freedesktop.org/software/systemd/man/latest/machine-id.html) file or write the string `uninitialized\n` into it. This file is supposed to carry a 128-bit identifier unique to the system. Only when it is reset it will be auto-generated on first boot and thus be truly unique. @@ -36,27 +36,27 @@ boot. For that it's essential to: for example, IPv6 addresses or transient MAC addresses. 2. Remove the `/var/lib/systemd/random-seed` file(see - [`systemd-random-seed(8)`](https://www.freedesktop.org/software/systemd/man/systemd-random-seed.service.html)), + [`systemd-random-seed(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-random-seed.service.html)), which is used to seed the kernel's random pool on boot. If this file is shipped pre-initialized, every instance will seed its random pool with the same random data that is included in the image, and thus possibly generate random data that is more similar to other instances booted off the same image than advisable. 3. Remove the `/loader/random-seed` file (see - [`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/systemd-boot.html)) + [`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-boot.html)) from the UEFI System Partition (ESP), in case the `systemd-boot` boot loader is used in the image. 4. It might also make sense to remove - [`/etc/hostname`](https://www.freedesktop.org/software/systemd/man/hostname.html) + [`/etc/hostname`](https://www.freedesktop.org/software/systemd/man/latest/hostname.html) and - [`/etc/machine-info`](https://www.freedesktop.org/software/systemd/man/machine-info.html) + [`/etc/machine-info`](https://www.freedesktop.org/software/systemd/man/latest/machine-info.html) which carry additional identifying information about the OS image. 5. Remove `/var/lib/systemd/credential.secret` which is used for protecting service credentials, see - [`systemd.exec(5)`](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Credentials) + [`systemd.exec(5)`](https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#Credentials) and - [`systemd-creds(1)`](https://www.freedesktop.org/software/systemd/man/systemd-creds.html) + [`systemd-creds(1)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-creds.html) for details. Note that by removing this file access to previously encrypted credentials from this image is lost. The file is automatically generated if a new credential is encrypted and the file does not exist yet. @@ -64,7 +64,7 @@ boot. For that it's essential to: ## Boot Menu Entry Identifiers The -[`kernel-install(8)`](https://www.freedesktop.org/software/systemd/man/kernel-install.html) +[`kernel-install(8)`](https://www.freedesktop.org/software/systemd/man/latest/kernel-install.html) logic used to generate [UAPI.1 Boot Loader Specification Type #1](https://uapi-group.org/specifications/specs/boot_loader_specification/#type-1-boot-loader-specification-entries) entries by default uses the machine ID as stored in `/etc/machine-id` for @@ -84,7 +84,7 @@ If not configured explicitly it defaults to the machineID. The file `/etc/kernel/entry-token` may be used to configure this string explicitly. Thus, golden image builders should write a suitable identifier into this file, for example, the `IMAGE_ID=` or `ID=` field from -[`/etc/os-release`](https://www.freedesktop.org/software/systemd/man/os-release.html) +[`/etc/os-release`](https://www.freedesktop.org/software/systemd/man/latest/os-release.html) (also see below). It is recommended to do this before the `kernel-install` functionality is invoked (i.e. before the package manager is used to install packages into the OS tree being prepared), so that the selected string is @@ -111,17 +111,17 @@ Specifically, the following mechanisms are in place: (see above). 3. The - [`nss-systemd(8)`](https://www.freedesktop.org/software/systemd/man/nss-systemd.html) + [`nss-systemd(8)`](https://www.freedesktop.org/software/systemd/man/latest/nss-systemd.html) glibc NSS module ensures the `root` and `nobody` users and groups remain resolvable, even without `/etc/passwd` and `/etc/group` around. 4. The - [`systemd-sysusers(8)`](https://www.freedesktop.org/software/systemd/man/systemd-sysusers.service.html) + [`systemd-sysusers(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-sysusers.service.html) component will automatically populate `/etc/passwd` and `/etc/group` on first boot with further necessary system users. 5. The - [`systemd-tmpfiles(8)`](https://www.freedesktop.org/software/systemd/man/systemd-tmpfiles-setup.service.html) + [`systemd-tmpfiles(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-tmpfiles-setup.service.html) component ensures that various files and directories below `/etc/`, `/var/` and other places are created automatically at boot if missing. Unlike the directories/symlinks created by the `switch-root` logic above this logic is @@ -131,7 +131,7 @@ Specifically, the following mechanisms are in place: unconditionally accessible through `/etc/os-release`. 6. The - [`nss-myhostname(8)`](https://www.freedesktop.org/software/systemd/man/nss-myhostname.html) + [`nss-myhostname(8)`](https://www.freedesktop.org/software/systemd/man/latest/nss-myhostname.html) glibc NSS module will ensure the local host name as well as `localhost` remains resolvable, even without `/etc/hosts` around. @@ -193,7 +193,7 @@ it, then format it. `systemd` provides multiple tools to implement the above logic: 1. The - [`systemd-repart(8)`](https://www.freedesktop.org/software/systemd/man/systemd-repart.service.html) + [`systemd-repart(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-repart.service.html) component may manipulate GPT partition tables automatically on boot, growing partitions or adding in partitions taking the backing storage size into account. It can also encrypt partitions automatically it creates (even bind @@ -202,7 +202,7 @@ it, then format it. incompletely set up partitions around. 2. The - [`systemd-growfs@(8).service`](https://www.freedesktop.org/software/systemd/man/systemd-growfs.html) + [`systemd-growfs@(8).service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-growfs.html) tool can automatically grow a file system to the partition it is contained in. The `x-systemd.growfs` mount option in `/etc/fstab` is sufficient to enable this logic for specific mounts. Alternatively appropriately set up @@ -221,7 +221,7 @@ While a lot of work has gone into ensuring `systemd` systems can safely boot with unpopulated `/etc/` trees, it sometimes is desirable to set a couple of basic settings *after* `dd`-ing the image to disk, but *before* first boot. For this the tool -[`systemd-firstboot(1)`](https://www.freedesktop.org/software/systemd/man/systemd-firstboot.html) +[`systemd-firstboot(1)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-firstboot.html) can be useful, with its `--image=` switch. It may be used to set very basic settings, such as the root password or hostname on an OS disk image or installed block device. @@ -232,7 +232,7 @@ For various purposes it's useful to be able to distinguish the first boot-up of the system from later boot-ups (for example, to set up TPM hardware specifically, or register a system somewhere). `systemd` provides mechanisms to implement that. Specifically, the `ConditionFirstBoot=` and `AssertFirstBoot=` settings may be used to conditionalize units to only run on first boot. -See [`systemd.unit(5)`](https://www.freedesktop.org/software/systemd/man/systemd.unit.html#ConditionFirstBoot=) +See [`systemd.unit(5)`](https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html#ConditionFirstBoot=) for details. A special target unit `first-boot-complete.target` may be used as milestone to @@ -247,14 +247,14 @@ Whether a system will come up in first boot state or not is derived from the initialization status of `/etc/machine-id`: if the file already carries a valid ID the system is already past the first boot. If it is not initialized yet it is still considered in the first boot state. -For details see [`machine-id(5)`](https://www.freedesktop.org/software/systemd/man/machine-id.html). +For details see [`machine-id(5)`](https://www.freedesktop.org/software/systemd/man/latest/machine-id.html). ## Image Metadata Typically, when operating with golden disk images it is useful to be able to identify them and their version. For this the two fields `IMAGE_ID=` and `IMAGE_VERSION=` have been defined in -[`os-release(5)`](https://www.freedesktop.org/software/systemd/man/os-release.html). +[`os-release(5)`](https://www.freedesktop.org/software/systemd/man/latest/os-release.html). These fields may be accessed from unit files and similar via the `%M` and `%A` specifiers. Depending on how the images are put together it might make sense to leave the @@ -265,12 +265,12 @@ fields. ## Links -[`machine-id(5)`](https://www.freedesktop.org/software/systemd/man/machine-id.html)
-[`systemd-random-seed(8)`](https://www.freedesktop.org/software/systemd/man/systemd-random-seed.service.html)
-[`os-release(5)`](https://www.freedesktop.org/software/systemd/man/os-release.html)
+[`machine-id(5)`](https://www.freedesktop.org/software/systemd/man/latest/machine-id.html)
+[`systemd-random-seed(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-random-seed.service.html)
+[`os-release(5)`](https://www.freedesktop.org/software/systemd/man/latest/os-release.html)
[UAPI.1 Boot Loader Specification](https://uapi-group.org/specifications/specs/boot_loader_specification)
[UAPI.2 Discoverable Partitions Specification](https://uapi-group.org/specifications/specs/discoverable_partitions_specification)
[`mkosi`](https://github.com/systemd/mkosi)
-[`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/systemd-boot.html)
-[`systemd-repart(8)`](https://www.freedesktop.org/software/systemd/man/systemd-repart.service.html)
-[`systemd-growfs@(8).service`](https://www.freedesktop.org/software/systemd/man/systemd-growfs.html)
+[`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-boot.html)
+[`systemd-repart(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-repart.service.html)
+[`systemd-growfs@(8).service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-growfs.html)
diff --git a/docs/CATALOG.md b/docs/CATALOG.md index 13d77e94927..0b8b9c0462b 100644 --- a/docs/CATALOG.md +++ b/docs/CATALOG.md @@ -21,7 +21,7 @@ The message catalog has a number of purposes: ## Format Message catalog source files are simple text files that follow an RFC822 inspired format. -To get an understanding of the format [here's an example file](http://cgit.freedesktop.org/systemd/systemd/plain/catalog/systemd.catalog), which includes entries for many important messages systemd itself generates. +To get an understanding of the format [here's an example file](https://github.com/systemd/systemd/blob/main/catalog/systemd.catalog.in), which includes entries for many important messages systemd itself generates. On installation of a package that includes message catalogs all installed message catalog source files get compiled into a binary index, which is then used to look up catalog data. journalctl's `-x` command line parameter may be used to augment on display journal log messages with message catalog data when browsing. @@ -36,9 +36,8 @@ Here's an example how a single catalog entry looks like in the text source forma -- fc2e22bc6ee647b6b90729ab34a250b1 Subject: Process @COREDUMP_PID@ (@COREDUMP_COMM@) dumped core Defined-By: systemd -Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel Documentation: man:core(5) -Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/@MESSAGE_ID@ Process @COREDUMP_PID@ (@COREDUMP_COMM@) crashed and dumped core. @@ -80,16 +79,16 @@ The text format of the .catalog files is as follows: * When a catalog entry is printed on screen for a specific log entry simple variable replacements are applied. Journal field names enclosed in @ will be replaced by their values, if such a field is available in an entry. If such a field is not defined in an entry the enclosing @ will be dropped but the variable name is kept. -See [systemd's own message catalog](http://cgit.freedesktop.org/systemd/systemd/plain/catalog/systemd.catalog) for a complete example for a catalog file. +See [systemd's own message catalog](https://github.com/systemd/systemd/blob/main/catalog/systemd.catalog.in) for a complete example for a catalog file. ## Adding Message Catalog Support to Your Program Note that the message catalog is only available for messages generated with the MESSAGE\_ID= journal meta data field, as this is need to find the right entry for a message. -For more information on the MESSAGE\_ID= journal entry field see [systemd.journal-fields(7)](http://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html). +For more information on the MESSAGE\_ID= journal entry field see [systemd.journal-fields(7)](https://www.freedesktop.org/software/systemd/man/latest/systemd.journal-fields.html). To add message catalog entries for log messages your application generates, please follow these guidelines: -* Use the [native Journal logging APIs](http://0pointer.de/blog/projects/journal-submit.html) +* Use the [native Journal logging APIs](https://0pointer.de/blog/projects/journal-submit.html) to generate your messages, and define message IDs for all messages you want to add catalog entries for. You may use `journalctl --new-id128` to allocate new message IDs. * Write a catalog entry file for your messages and ship them in your package and install them to `/usr/lib/systemd/catalog/` diff --git a/docs/CODE_QUALITY.md b/docs/CODE_QUALITY.md index 69919df4722..a9e663bd057 100644 --- a/docs/CODE_QUALITY.md +++ b/docs/CODE_QUALITY.md @@ -27,7 +27,7 @@ available functionality: using `systemd-nspawn` and `qemu`. Requires root. 3. Use `./coccinelle/run-coccinelle.sh` to run all - [Coccinelle](http://coccinelle.lip6.fr/) semantic patch scripts we ship. The + [Coccinelle](https://coccinelle.gitlabpages.inria.fr/website/) semantic patch scripts we ship. The output will show false positives, hence take it with a pinch of salt. 4. Use `./tools/find-double-newline.sh recdiff` to find double newlines. Use diff --git a/docs/CONTROL_GROUP_INTERFACE.md b/docs/CONTROL_GROUP_INTERFACE.md index f1da4d06aae..3490c1a4b97 100644 --- a/docs/CONTROL_GROUP_INTERFACE.md +++ b/docs/CONTROL_GROUP_INTERFACE.md @@ -58,9 +58,9 @@ On systemd systems use the systemd APIs as described below. At this time we are Systemd provides three unit types that are useful for the purpose of resource control: -- [_Services_](http://www.freedesktop.org/software/systemd/man/systemd.service.html) encapsulate a number of processes that are started and stopped by systemd based on configuration. Services are named in the style of `quux.service`. -- [_Scopes_](http://www.freedesktop.org/software/systemd/man/systemd.scope.html) encapsulate a number of processes that are started and stopped by arbitrary processes via fork(), and then registered at runtime with PID1. Scopes are named in the style of `wuff.scope`. -- [_Slices_](http://www.freedesktop.org/software/systemd/man/systemd.slice.html) may be used to group a number of services and scopes together in a hierarchial tree. Slices do not contain processes themselves, but the services and scopes contained in them do. Slices are named in the style of `foobar-waldo.slice`, where the path to the location of the slice in the tree is encoded in the name with "-" as separator for the path components (`foobar-waldo.slice` is hence a subslice of `foobar.slice`). There's one special slices defined, `-.slice`, which is the root slice of all slices (`foobar.slice` is hence subslice of `-.slice`). This is similar how in regular file paths, "/" denotes the root directory. +- [_Services_](https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html) encapsulate a number of processes that are started and stopped by systemd based on configuration. Services are named in the style of `quux.service`. +- [_Scopes_](https://www.freedesktop.org/software/systemd/man/latest/systemd.scope.html) encapsulate a number of processes that are started and stopped by arbitrary processes via fork(), and then registered at runtime with PID1. Scopes are named in the style of `wuff.scope`. +- [_Slices_](https://www.freedesktop.org/software/systemd/man/latest/systemd.slice.html) may be used to group a number of services and scopes together in a hierarchial tree. Slices do not contain processes themselves, but the services and scopes contained in them do. Slices are named in the style of `foobar-waldo.slice`, where the path to the location of the slice in the tree is encoded in the name with "-" as separator for the path components (`foobar-waldo.slice` is hence a subslice of `foobar.slice`). There's one special slices defined, `-.slice`, which is the root slice of all slices (`foobar.slice` is hence subslice of `-.slice`). This is similar how in regular file paths, "/" denotes the root directory. Service, scope and slice units directly map to objects in the cgroup tree. When these units are activated they each map to directly (modulo some character escaping) to cgroup paths built from the unit names. For example, a service `quux.service` in a slice `foobar-waldo.slice` is found in the cgroup `foobar.slice/foobar-waldo.slice/quux.service/`. @@ -179,7 +179,7 @@ Resource limits may be set on services, scopes and slices the same way. All acti Service and slice units may be configured via unit files on disk, or alternatively be created dynamically at runtime via API calls to PID 1. Scope units may only be created at runtime via API calls to PID 1, but not from unit files on disk. Units that are created dynamically at runtime via API calls are called _transient_ units. Transient units exist only during runtime and are released automatically as soon as they finished/got deactivated or the system is rebooted. -If a service/slice is configured via unit files on disk the resource controls may be configured with the settings documented in [systemd.resource-control(5)](http://www.freedesktop.org/software/systemd/man/systemd.resource-control.html). While the unit is started it may be reconfigured for services/slices/scopes (with changes applying instantly) with a command line such as: +If a service/slice is configured via unit files on disk the resource controls may be configured with the settings documented in [systemd.resource-control(5)](https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html). While the unit is started it may be reconfigured for services/slices/scopes (with changes applying instantly) with a command line such as: ``` # systemctl set-property httpd.service CPUShares=500 MemoryLimit=500M @@ -205,11 +205,11 @@ The properties array of `StartTransientUnit()` may take many of the settings tha To alter resource control properties at runtime use the `SetUnitProperty()` call on the `Manager` object or `SetProperty()` on the individual Unit objects. This also takes an array of properties to set, in the same format as `StartTransientUnit()` takes. Note again that this is not a dictionary, and allows properties to be set multiple times with a single invocation. THis is useful for array properties: if a property is assigned the empty array it will be reset to the empty array itself, however if it is assigned a non-empty array then this array is appended to the previous array. This mimics behaviour of array settings in unit files. Note that most settings may only be set during creation of units with `StartTransientUnit()`, and may not be altered later on. The exception here are the resource control settings, more specifically `CPUAccounting`, `CPUShares`, `BlockIOAccounting`, `BlockIOWeight`, `BlockIOReadBandwidth`, `BlockIOWriteBandwidth`, `BlockIODeviceWeight`, `MemoryAccounting`, `MemoryLimit`, `DevicePolicy`, `DeviceAllow` for services/scopes/slices. Note that the standard D-Bus `org.freedesktop.DBus.Properties.Set()` call is currently not supported by any of the unit objects to set these properties, but might eventually (note however, that it is substantially less useful as it only allows setting a single property at a time, resulting in races). -The [`systemctl set-property`](http://www.freedesktop.org/software/systemd/man/systemctl.html) command internally is little more than a wrapper around `SetUnitProperty()`. The [`systemd-run`](http://www.freedesktop.org/software/systemd/man/systemd-run.html) tool is a wrapper around `StartTransientUnit()`. It may be used to either run a process as a transient service in the background, where it is invoked from PID 1, or alternatively as a scope unit in the foreground, where it is run from the `systemd-run` process itself. +The [`systemctl set-property`](https://www.freedesktop.org/software/systemd/man/latest/systemctl.html) command internally is little more than a wrapper around `SetUnitProperty()`. The [`systemd-run`](https://www.freedesktop.org/software/systemd/man/latest/systemd-run.html) tool is a wrapper around `StartTransientUnit()`. It may be used to either run a process as a transient service in the background, where it is invoked from PID 1, or alternatively as a scope unit in the foreground, where it is run from the `systemd-run` process itself. ### Enumeration -To acquire a list of currently running units, use the `ListUnits()` call on the Manager bus object. To determine the scope/service unit and slice unit a process is running in use [`sd_pid_get_unit()`](http://www.freedesktop.org/software/systemd/man/sd_pid_get_unit.html) and `sd_pid_get_slice()`. These two calls are implemented in `libsystemd-login.so`. These call bypass the system bus (which they can because they are passive and do not require privileges) and are hence very efficient to invoke. +To acquire a list of currently running units, use the `ListUnits()` call on the Manager bus object. To determine the scope/service unit and slice unit a process is running in use [`sd_pid_get_unit()`](https://www.freedesktop.org/software/systemd/man/latest/sd_pid_get_unit.html) and `sd_pid_get_slice()`. These two calls are implemented in `libsystemd-login.so`. These call bypass the system bus (which they can because they are passive and do not require privileges) and are hence very efficient to invoke. ### VM and Container Managers diff --git a/docs/CONVERTING_TO_HOMED.md b/docs/CONVERTING_TO_HOMED.md index a31ff5a37e5..6e06741a8f7 100644 --- a/docs/CONVERTING_TO_HOMED.md +++ b/docs/CONVERTING_TO_HOMED.md @@ -10,7 +10,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later Traditionally on most Linux distributions, regular (human) users are managed via entries in `/etc/passwd`, `/etc/shadow`, `/etc/group` and `/etc/gshadow`. With the advent of -[`systemd-homed`](https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html) +[`systemd-homed`](https://www.freedesktop.org/software/systemd/man/latest/systemd-homed.service.html) it might be desirable to convert an existing, traditional user account to a `systemd-homed` managed one. Below is a brief guide how to do that. @@ -100,7 +100,7 @@ Here's the step-by-step guide: group as new primary group, but will have it as auxiliary group. Consider reading through the - [homectl(1)](https://www.freedesktop.org/software/systemd/man/homectl.html) + [homectl(1)](https://www.freedesktop.org/software/systemd/man/latest/homectl.html) manual page at this point, maybe there are a couple of other settings you want to set for your new account. In particular, look at `--storage=` and `--disk-size=`, in order to change how your home directory shall be stored (the default `luks` storage is recommended). diff --git a/docs/COREDUMP.md b/docs/COREDUMP.md index b632733b70c..f65c14cb4b6 100644 --- a/docs/COREDUMP.md +++ b/docs/COREDUMP.md @@ -52,7 +52,7 @@ are required to collect and process a coredump successfully. ## `systemd-coredump` Handler The systemd suite provides a coredump handler -[`systemd-coredump`](https://www.freedesktop.org/software/systemd/man/systemd-coredump.html) +[`systemd-coredump`](https://www.freedesktop.org/software/systemd/man/latest/systemd-coredump.html) which can be enabled at build-time. It is activated during boot via the `/usr/lib/sysctl.d/50-coredump.conf` drop-in file for `systemd-sysctl.service`. It registers the `systemd-coredump` tool as @@ -71,13 +71,13 @@ The `systemd-coredump` handler will extract a backtrace and [ELF packaging metadata](/PACKAGE_METADATA_FOR_EXECUTABLE_FILES) from any coredumps it receives and log both. The information about coredumps stored in the journal can be enumerated and queried with the -[`coredumpctl`](https://www.freedesktop.org/software/systemd/man/coredumpctl.html) +[`coredumpctl`](https://www.freedesktop.org/software/systemd/man/latest/coredumpctl.html) tool, for example for directly invoking a debugger such as `gdb` on a collected coredump. The handler writes coredump files to `/var/lib/systemd/coredump/`. Old files are cleaned up periodically by -[`systemd-tmpfiles(8)`](https://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.html). +[`systemd-tmpfiles(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-tmpfiles.html). ## User Experience diff --git a/docs/CREDENTIALS.md b/docs/CREDENTIALS.md index 2fa17e42fe8..abfdfb0ad29 100644 --- a/docs/CREDENTIALS.md +++ b/docs/CREDENTIALS.md @@ -96,7 +96,7 @@ for inclusion in a filename) in the unit file, under which the invoked service code can then retrieve it. Each name should only be specified once. For details about these settings [see the man -page](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Credentials). +page](https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#Credentials). It is a good idea to also enable mount namespacing for services that process credentials configured this way. If so, the runtime credential directory of the @@ -159,7 +159,7 @@ activation, so that service code only receives plaintext credentials. ## Programming Interface from Generator Code -[Generators](https://www.freedesktop.org/software/systemd/man/systemd.generator.html) +[Generators](https://www.freedesktop.org/software/systemd/man/latest/systemd.generator.html) may generate native unit files from external configuration or system parameters, such as system credentials. Note that they run outside of service context, and hence will not receive encrypted credentials in plaintext @@ -169,7 +169,7 @@ be placed as they are in a directory referenced by the plaintext form will be placed in `$CREDENTIALS_DIRECTORY`. Use a command such as `systemd-creds --system cat …` to access both forms of credentials, and decrypt them if needed (see -[systemd-creds(1)](https://www.freedesktop.org/software/systemd/man/systemd-creds.html) +[systemd-creds(1)](https://www.freedesktop.org/software/systemd/man/latest/systemd-creds.html) for details. Note that generators typically run very early during boot (similar to initrd @@ -184,7 +184,7 @@ For further details about encrypted credentials, see below. ## Tools The -[`systemd-creds`](https://www.freedesktop.org/software/systemd/man/systemd-creds.html) +[`systemd-creds`](https://www.freedesktop.org/software/systemd/man/latest/systemd-creds.html) tool is provided to work with system and service credentials. It may be used to access and enumerate system and service credentials, or to encrypt/decrypt credentials (for details about the latter, see below). @@ -286,7 +286,7 @@ services where they are ultimately consumed. 1. A container manager may set the `$CREDENTIALS_DIRECTORY` environment variable for systemd running as PID 1 in the container, the same way as systemd would set it for a service it invokes. - [`systemd-nspawn(1)`](https://www.freedesktop.org/software/systemd/man/systemd-nspawn.html#Credentials)'s + [`systemd-nspawn(1)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-nspawn.html#Credentials)'s `--set-credential=` and `--load-credential=` switches implement this, in order to pass arbitrary credentials from host to container payload. Also see the [Container Interface](/CONTAINER_INTERFACE) documentation. @@ -311,7 +311,7 @@ services where they are ultimately consumed. 4. Credentials may also be passed from the UEFI environment to userspace, if the - [`systemd-stub`](https://www.freedesktop.org/software/systemd/man/systemd-stub.html) + [`systemd-stub`](https://www.freedesktop.org/software/systemd/man/latest/systemd-stub.html) UEFI kernel stub is used. This allows placing encrypted credentials in the EFI System Partition, which are then picked up by `systemd-stub` and passed to the kernel and ultimately userspace where systemd receives them. This is useful to implement secure parameterization of vendor-built and signed @@ -370,7 +370,7 @@ systemd-run -p ImportCredential=mycred -P --wait systemd-creds cat mycred Various services shipped with `systemd` consume credentials for tweaking behaviour: -* [`systemd(1)`](https://www.freedesktop.org/software/systemd/man/systemd.html) +* [`systemd(1)`](https://www.freedesktop.org/software/systemd/man/latest/systemd.html) (I.E.: PID1, the system manager) will look for the credential `vmm.notify_socket` and will use it to send a `READY=1` datagram when the system has finished booting. @@ -380,24 +380,24 @@ Various services shipped with `systemd` consume credentials for tweaking behavio The credential payload should be in the form: `vsock::`. Also note that this requires support for VSOCK to be built in both the guest and the host kernels, and the kernel modules to be loaded. -* [`systemd-sysusers(8)`](https://www.freedesktop.org/software/systemd/man/systemd-sysusers.html) +* [`systemd-sysusers(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-sysusers.html) will look for the credentials `passwd.hashed-password.`, `passwd.plaintext-password.` and `passwd.shell.` to configure the password (either in UNIX hashed form, or plaintext) or shell of system users created. Replace `` with the system user of your choice, for example, `root`. -* [`systemd-firstboot(1)`](https://www.freedesktop.org/software/systemd/man/systemd-firstboot.html) +* [`systemd-firstboot(1)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-firstboot.html) will look for the credentials `firstboot.locale`, `firstboot.locale-messages`, `firstboot.keymap`, `firstboot.timezone`, that configure locale, keymap or timezone settings in case the data is not yet set in `/etc/`. -* [`tmpfiles.d(5)`](https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html) +* [`tmpfiles.d(5)`](https://www.freedesktop.org/software/systemd/man/latest/tmpfiles.d.html) will look for the credentials `tmpfiles.extra` with arbitrary tmpfiles.d lines. Can be encoded in base64 to allow easily passing it on the command line. * Further well-known credentials are documented in - [`systemd.system-credentials(7)`](https://www.freedesktop.org/software/systemd/man/systemd.system-credentials.html). + [`systemd.system-credentials(7)`](https://www.freedesktop.org/software/systemd/man/latest/systemd.system-credentials.html). In future more services are likely to gain support for consuming credentials. diff --git a/docs/DEBUGGING.md b/docs/DEBUGGING.md index 175e557e6c7..d14f1b1fb3b 100644 --- a/docs/DEBUGGING.md +++ b/docs/DEBUGGING.md @@ -35,7 +35,7 @@ you will need to do additional steps to get debugging information out of the mac * Try CTRL+ALT+DEL to reboot. * If it does not reboot, mention it in your bugreport. Meanwhile force the reboot with - [SysRq](http://fedoraproject.org/wiki/QA/Sysrq) + [SysRq](https://fedoraproject.org/wiki/QA/Sysrq) or hard reset. * When booting the next time, you will have to add some kernel command line arguments depending on which of the debugging strategies you choose from the following options. diff --git a/docs/DESKTOP_ENVIRONMENTS.md b/docs/DESKTOP_ENVIRONMENTS.md index 8a62eb00542..f8519549b8b 100644 --- a/docs/DESKTOP_ENVIRONMENTS.md +++ b/docs/DESKTOP_ENVIRONMENTS.md @@ -26,7 +26,7 @@ Currently nothing like this is supported or even planned. ## Pre-defined systemd units -[`systemd.special(7)`](https://www.freedesktop.org/software/systemd/man/systemd.special.html) +[`systemd.special(7)`](https://www.freedesktop.org/software/systemd/man/latest/systemd.special.html) defines the `graphical-session.target` and `graphical-session-pre.target` to allow cross-desktop integration. Furthermore, systemd defines the three base slices `background`, `app` and `session`. diff --git a/docs/DISTRO_PORTING.md b/docs/DISTRO_PORTING.md index 159cdd13b46..845769fff23 100644 --- a/docs/DISTRO_PORTING.md +++ b/docs/DISTRO_PORTING.md @@ -53,7 +53,7 @@ If you prefer to use leap second steps, please register your own vendor pool at ntp.org and make it the built-in default by passing `-Dntp-servers=` to meson. Registering vendor pools is -[free](http://www.pool.ntp.org/en/vendors.html). +[free](https://www.pool.ntp.org/en/vendors.html). Use `-Dntp-servers=` to direct systemd-timesyncd to different fallback NTP servers. diff --git a/docs/FAQ.md b/docs/FAQ.md index 7868ad7bfa0..3966d4fd49e 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -62,8 +62,8 @@ A: Simply instantiate a new getty service for the port of your choice (internall # systemctl start serial-getty@ttyS2.service ``` -Note that gettys on the virtual console are started on demand. You can control how many you get via the NAutoVTs= setting in [logind.conf(7)](http://www.freedesktop.org/software/systemd/man/systemd-logind.service). -Also see [this blog story](http://0pointer.de/blog/projects/serial-console.html). +Note that gettys on the virtual console are started on demand. You can control how many you get via the NAutoVTs= setting in [logind.conf(7)](https://www.freedesktop.org/software/systemd/man/latest/systemd-logind.service.html). +Also see [this blog story](https://0pointer.de/blog/projects/serial-console.html). **Q: How to I figure out which service a process belongs to?** @@ -75,7 +75,7 @@ $ psc ... ``` -Or you can even check /proc/$PID/cgroup directly. Also see [this blog story](http://0pointer.de/blog/projects/systemd-for-admins-2.html). +Or you can even check /proc/$PID/cgroup directly. Also see [this blog story](https://0pointer.de/blog/projects/systemd-for-admins-2.html). **Q: Why don't you use inotify to reload the unit files automatically on change?** diff --git a/docs/FILE_DESCRIPTOR_STORE.md b/docs/FILE_DESCRIPTOR_STORE.md index ce70846b0de..231af87c912 100644 --- a/docs/FILE_DESCRIPTOR_STORE.md +++ b/docs/FILE_DESCRIPTOR_STORE.md @@ -17,7 +17,7 @@ mechanism: the service manager creates and listens on some sockets (and similar UNIX file descriptors) on behalf of a service, and then passes them to the service during activation of the service via UNIX file descriptor (short: *fd*) passing over `execve()`. This is primarily exposed in the -[.socket](https://www.freedesktop.org/software/systemd/man/systemd.socket.html) +[.socket](https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html) unit type. The *file* *descriptor* *store* (short: *fdstore*) extends this concept, and @@ -50,14 +50,14 @@ passed over. ## Basic Mechanism The fdstore is enabled per-service via the -[`FileDescriptorStoreMax=`](https://www.freedesktop.org/software/systemd/man/systemd.service.html#FileDescriptorStoreMax=) +[`FileDescriptorStoreMax=`](https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html#FileDescriptorStoreMax=) service setting. It defaults to zero (which means the fdstore logic is turned off), but can take an unsigned integer value that controls how many fds to permit the service to upload to the service manager to keep simultaneously. If set to values > 0, the fdstore is enabled. When invoked the service may now (asynchronously) upload file descriptors to the fdstore via the -[`sd_pid_notify_with_fds()`](https://www.freedesktop.org/software/systemd/man/sd_pid_notify_with_fds.html) +[`sd_pid_notify_with_fds()`](https://www.freedesktop.org/software/systemd/man/latest/sd_pid_notify_with_fds.html) API call (or an equivalent re-implementation). When uploading the fds it is necessary to set the `FDSTORE=1` field in the message, to indicate what the fd is intended for. It's recommended to also set the `FDNAME=…` field to any @@ -68,7 +68,7 @@ new instance following the same protocol as for socket activation fds. i.e. the `$LISTEN_FDS`, `$LISTEN_PID`, `$LISTEN_PIDFDID`, and `$LISTEN_FDNAMES` environment variables will be set (the latter will be populated from the `FDNAME=…` field mentioned above). See -[`sd_listen_fds()`](https://www.freedesktop.org/software/systemd/man/sd_listen_fds.html) +[`sd_listen_fds()`](https://www.freedesktop.org/software/systemd/man/latest/sd_listen_fds.html) for details on receiving such fds in a service. (Note that the name set in `FDNAME=…` does not need to be unique, which is useful when operating with multiple fully equivalent sockets or similar, for example for a service that @@ -120,7 +120,7 @@ service will leave the fdstore intact, but a separate stop and start job for it — executed synchronously one after the other — will likely not. This behavior can be modified via the -[`FileDescriptorStorePreserve=`](https://www.freedesktop.org/software/systemd/man/systemd.service.html#FileDescriptorStorePreserve=) +[`FileDescriptorStorePreserve=`](https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html#FileDescriptorStorePreserve=) setting in service unit files. If set to `yes` the fdstore will be kept as long as the service definition is loaded into memory by the service manager, i.e. as long as at least one other loaded unit has a reference to it. @@ -154,7 +154,7 @@ Access to the fds in the file descriptor store is generally restricted to the service code itself. Pushing fds into or removing fds from the fdstore is subject to the access control restrictions of any other `sd_notify()` message, which is controlled via -[`NotifyAccess=`](https://www.freedesktop.org/software/systemd/man/systemd.service.html#NotifyAccess=). +[`NotifyAccess=`](https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html#NotifyAccess=). By default only the main service process hence can push/remove fds, but by setting `NotifyAccess=all` this may be relaxed to allow arbitrary service @@ -163,7 +163,7 @@ child processes to do the same. ## Soft Reboot The fdstore is particularly interesting in [soft -reboot](https://www.freedesktop.org/software/systemd/man/systemd-soft-reboot.service.html) +reboot](https://www.freedesktop.org/software/systemd/man/latest/systemd-soft-reboot.service.html) scenarios, as per `systemctl soft-reboot` (which restarts userspace like in a real reboot, but leaves the kernel running). File descriptor stores that remain loaded at the very end of the system cycle — just before the soft-reboot – are @@ -179,7 +179,7 @@ or by setting `FileDescriptorStorePreserve=yes` (and referencing the unit continuously). For further details see [Resource -Pass-Through](https://www.freedesktop.org/software/systemd/man/systemd-soft-reboot.service.html#Resource%20Pass-Through). +Pass-Through](https://www.freedesktop.org/software/systemd/man/latest/systemd-soft-reboot.service.html#Resource%20Pass-Through). ## Initrd Transitions @@ -201,12 +201,12 @@ recommended to use the fdstore if pinned resources shall be passed over. ## Debugging The -[`systemd-analyze`](https://www.freedesktop.org/software/systemd/man/systemd-analyze.html#systemd-analyze%20fdstore%20%5BUNIT...%5D) +[`systemd-analyze`](https://www.freedesktop.org/software/systemd/man/latest/systemd-analyze.html#systemd-analyze%20fdstore%20%5BUNIT...%5D) tool may be used to list the current contents of the fdstore of any running service. The -[`systemd-run`](https://www.freedesktop.org/software/systemd/man/systemd-run.html) +[`systemd-run`](https://www.freedesktop.org/software/systemd/man/latest/systemd-run.html) tool may be used to quickly start a testing binary or similar as a service. Use `-p FileDescriptorStoreMax=4711` to enable the fdstore from `systemd-run`'s command line. By using the `-t` switch you can even interactively communicate diff --git a/docs/HOME_DIRECTORY.md b/docs/HOME_DIRECTORY.md index 2efabaeb928..57d87f5eeac 100644 --- a/docs/HOME_DIRECTORY.md +++ b/docs/HOME_DIRECTORY.md @@ -7,7 +7,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later # Home Directories -[`systemd-homed.service(8)`](https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html) +[`systemd-homed.service(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-homed.service.html) manages home directories of regular ("human") users. Each directory it manages encapsulates both the data store and the user record of the user, so that it comprehensively describes the user account, and is thus naturally portable @@ -34,7 +34,7 @@ the signature section itself. If the plain directory or `btrfs` subvolume storage mechanism of `systemd-homed` is used (i.e. `--storage=directory` or `--storage=subvolume` on the -[`homectl(1)`](https://www.freedesktop.org/software/systemd/man/homectl.html) +[`homectl(1)`](https://www.freedesktop.org/software/systemd/man/latest/homectl.html) command line) the home directory requires no special setup besides including the user record in the `~/.identity` file. diff --git a/docs/INCOMPATIBILITIES.md b/docs/INCOMPATIBILITIES.md index 4695f0262f1..b0f65748622 100644 --- a/docs/INCOMPATIBILITIES.md +++ b/docs/INCOMPATIBILITIES.md @@ -21,7 +21,7 @@ Many of the incompatibilities are specific to distribution-specific extensions o * LSB header dependency information matters. The SysV implementations on many distributions did not use the dependency information encoded in LSB init script headers, or used them only in very limited ways. Due to that they are often incorrect or incomplete. systemd however fully interprets these headers and follows them closely at runtime (and not at installation time like some implementations). * Timeouts apply to all init script operations in systemd. While on SysV systems a hanging init script could freeze the system on systemd all init script operations are subject to a timeout of 5min. * Services are executed in completely clean execution contexts, no context of the invoking user session is inherited. Not even $HOME or similar are set. Init scripts depending on these will not work correctly. -* Services cannot read from stdin, as this will be connected to /dev/null. That means interactive init scripts are not supported (i.e. Debian's X-Interactive in the LSB header is not supported either.) Thankfully most distributions do not support interaction in init scripts anyway. If you need interaction to ask disk or SSL passphrases please consider using the minimal password querying framework systemd supports. ([details](/PASSWORD_AGENTS), [manual page](http://0pointer.de/public/systemd-man/systemd-ask-password.html)) +* Services cannot read from stdin, as this will be connected to /dev/null. That means interactive init scripts are not supported (i.e. Debian's X-Interactive in the LSB header is not supported either.) Thankfully most distributions do not support interaction in init scripts anyway. If you need interaction to ask disk or SSL passphrases please consider using the minimal password querying framework systemd supports. ([details](/PASSWORD_AGENTS), [manual page](https://0pointer.de/public/systemd-man/systemd-ask-password.html)) * Additional verbs for init scripts are not supported. If your init script traditionally supported additional verbs for your init script simply move them to an auxiliary script. * Additional parameters to the standard verbs (i.e. to "start", "stop" and "status") are not supported. This was an extension of SysV that never was standardized officially, and is not supported in systemd. * Overriding the "restart" verb is not supported. This verb is always implemented by systemd itself, and consists of a "stop" followed by a "start". diff --git a/docs/INHIBITOR_LOCKS.md b/docs/INHIBITOR_LOCKS.md index fdf7b1e9ff1..220c085e09a 100644 --- a/docs/INHIBITOR_LOCKS.md +++ b/docs/INHIBITOR_LOCKS.md @@ -7,7 +7,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later # Inhibitor Locks -systemd 183 and newer include a logic to inhibit system shutdowns and sleep states. This is implemented as part of [systemd-logind.daemon(8)](http://www.freedesktop.org/software/systemd/man/systemd-logind.service.html) There are a couple of different use cases for this: +systemd 183 and newer include a logic to inhibit system shutdowns and sleep states. This is implemented as part of [systemd-logind.daemon(8)](https://www.freedesktop.org/software/systemd/man/latest/systemd-logind.service.html) There are a couple of different use cases for this: - A CD burning application wants to ensure that the system is not turned off or suspended while the burn process is in progress. @@ -39,7 +39,7 @@ Two different modes of locks are supported: If such a lock is taken the operation will fail (but still may be overridden if the user possesses the necessary privileges). 2. _delay_ inhibits operations only temporarily, either until the lock is released or up to a certain amount of time. -The InhibitDelayMaxSec= setting in [logind.conf(5)](http://www.freedesktop.org/software/systemd/man/logind.conf.html) controls the timeout for this. This is intended to be used by applications which need a synchronous way to execute actions before system suspend but shall not be allowed to block suspend indefinitely. +The InhibitDelayMaxSec= setting in [logind.conf(5)](https://www.freedesktop.org/software/systemd/man/latest/logind.conf.html) controls the timeout for this. This is intended to be used by applications which need a synchronous way to execute actions before system suspend but shall not be allowed to block suspend indefinitely. This mode is only available for _sleep_ and _shutdown_ locks. 3. _block-weak_ is identical to _block_, but has no effect on operations @@ -110,7 +110,7 @@ Note that this will only be sent out for suspend/resume cycles done via logind, The **BlockInhibited** and **DelayInhibited** properties encode what types of locks are currently taken. These fields are a colon separated list of `shutdown`, `sleep`, `idle`, `handle-power-key`, `handle-suspend-key`, `handle-hibernate-key`, `handle-lid-switch`. The list is basically the union of the What fields of all currently active locks of the specific mode. -**InhibitDelayMaxUSec** contains the delay timeout value as configured in [logind.conf(5)](http://www.freedesktop.org/software/systemd/man/logind.conf.html). +**InhibitDelayMaxUSec** contains the delay timeout value as configured in [logind.conf(5)](https://www.freedesktop.org/software/systemd/man/latest/logind.conf.html). The **PreparingForShutdown** and **PreparingForSleep** boolean properties are true between the two PrepareForShutdown() resp PrepareForSleep() signals that are sent out. Note that these properties do not trigger PropertyChanged signals. @@ -202,9 +202,9 @@ This can be quite detrimental for the battery. If an application finds a lock denied it should not consider this much of an error and just continue its operation without the protecting lock. -The tool [systemd-inhibit(1)](http://www.freedesktop.org/software/systemd/man/systemd-inhibit.html) may be used to take locks or list active locks from the command line. +The tool [systemd-inhibit(1)](https://www.freedesktop.org/software/systemd/man/latest/systemd-inhibit.html) may be used to take locks or list active locks from the command line. -Note that gnome-session also provides an [inhibitor API](http://people.gnome.org/~mccann/gnome-session/docs/gnome-session.html#org.gnome.SessionManager.Inhibit), which is very similar to the one of systemd. +Note that gnome-session also provides an [inhibitor API](https://gnome.pages.gitlab.gnome.org/gnome-session/re06.html), which is very similar to the one of systemd. Internally, locks taken on gnome-session's interface will be forwarded to logind, hence both APIs are supported. While both offer similar functionality they do differ in some regards. diff --git a/docs/JOURNAL_EXPORT_FORMATS.md b/docs/JOURNAL_EXPORT_FORMATS.md index 0da5252432b..3c39782564d 100644 --- a/docs/JOURNAL_EXPORT_FORMATS.md +++ b/docs/JOURNAL_EXPORT_FORMATS.md @@ -13,7 +13,7 @@ _Note that this document describes the binary serialization format of journals o For interfacing with web technologies there's the Journal JSON Format, described below. The binary format on disk is documented as the [Journal File Format](/JOURNAL_FILE_FORMAT)._ -_Before reading on, please make sure you are aware of the [basic properties of journal entries](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html), in particular realize that they may include binary non-text data (though usually don't), and the same field might have multiple values assigned within the same entry (though usually hasn't)._ +_Before reading on, please make sure you are aware of the [basic properties of journal entries](https://www.freedesktop.org/software/systemd/man/latest/systemd.journal-fields.html), in particular realize that they may include binary non-text data (though usually don't), and the same field might have multiple values assigned within the same entry (though usually hasn't)._ When exporting journal data for other uses or transferring it via the network/local IPC the _journal export format_ is used. It's a simple serialization of journal entries, that is easy to read without any special tools, but still binary safe where necessary. @@ -138,7 +138,7 @@ _Note that this section describes the JSON serialization format of the journal o For binary transfer of journal data across the network there's the Journal Export Format described above. The binary format on disk is documented as [Journal File Format](/JOURNAL_FILE_FORMAT)._ -_Before reading on, please make sure you are aware of the [basic properties of journal entries](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html), in particular realize that they may include binary non-text data (though usually don't), and the same field might have multiple values assigned within the same entry (though usually hasn't)._ +_Before reading on, please make sure you are aware of the [basic properties of journal entries](https://www.freedesktop.org/software/systemd/man/latest/systemd.journal-fields.html), in particular realize that they may include binary non-text data (though usually don't), and the same field might have multiple values assigned within the same entry (though usually hasn't)._ In most cases the Journal JSON serialization is the obvious mapping of the entry field names (as JSON strings) to the entry field values (also as JSON strings) encapsulated in one JSON object. However, there are a few special cases to handle: diff --git a/docs/JOURNAL_FILE_FORMAT.md b/docs/JOURNAL_FILE_FORMAT.md index 581e0b25eeb..ddd4a2de1ab 100644 --- a/docs/JOURNAL_FILE_FORMAT.md +++ b/docs/JOURNAL_FILE_FORMAT.md @@ -30,7 +30,7 @@ so if this document and the code disagree, the code is right. That said we'll of course try hard to keep this document up-to-date and accurate. Instead of implementing your own reader or writer for journal files we ask you to use the -[Journal's native CAPI](https://www.freedesktop.org/software/systemd/man/sd-journal.html) +[Journal's native CAPI](https://www.freedesktop.org/software/systemd/man/latest/sd-journal.html) to access these files. It provides you with full access to the files, and will not withhold any data. If you find a limitation, please ping us and we might add some additional interfaces for you. @@ -42,7 +42,7 @@ The export format is much simpler to parse, but complete and accurate. Due to its stream-based nature it is not indexed. _Or, to put this in other words: this low-level document is probably not what you want to use as base of your project. -You want our [C API](https://www.freedesktop.org/software/systemd/man/sd-journal.html) instead! +You want our [C API](https://www.freedesktop.org/software/systemd/man/latest/sd-journal.html) instead! And if you really don't want the C API, then you want the [Journal Export Format or Journal JSON Format](/JOURNAL_EXPORT_FORMATS) instead! This document is primarily for your entertainment and education. @@ -51,7 +51,7 @@ Thank you!_ This document assumes you have a basic understanding of the journal concepts, the properties of a journal entry and so on. If not, please go and read up, then come back! This is a good opportunity to read about the -[basic properties of journal entries](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html), +[basic properties of journal entries](https://www.freedesktop.org/software/systemd/man/latest/systemd.journal-fields.html), in particular realize that they may include binary non-text data (though usually don't), and the same field might have multiple values assigned within the same entry. diff --git a/docs/JOURNAL_NATIVE_PROTOCOL.md b/docs/JOURNAL_NATIVE_PROTOCOL.md index ce00d7e1ae9..2e4a346e71c 100644 --- a/docs/JOURNAL_NATIVE_PROTOCOL.md +++ b/docs/JOURNAL_NATIVE_PROTOCOL.md @@ -18,7 +18,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later The latter is what this document is about: if you are developing a program and want to pass structured log data to `journald`, it's the Journal's native protocol that you want to use. The systemd project provides the -[`sd_journal_print(3)`](https://www.freedesktop.org/software/systemd/man/sd_journal_print.html) +[`sd_journal_print(3)`](https://www.freedesktop.org/software/systemd/man/latest/sd_journal_print.html) API that implements the client side of this protocol. This document explains what this interface does behind the scenes, in case you'd like to implement a client for it yourself, without linking to `libsystemd` — for example because @@ -96,7 +96,7 @@ actual log message text. Other relevant keys a client should send in most cases are `PRIORITY=`, `CODE_FILE=`, `CODE_LINE=`, `CODE_FUNC=`, `ERRNO=`. It's recommended to generate these fields implicitly on the client side. For further information see the [relevant documentation of these -fields](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html). +fields](https://www.freedesktop.org/software/systemd/man/latest/systemd.journal-fields.html). The order in which the fields are serialized within one datagram is undefined and may be freely chosen by the client. The server side might or might not diff --git a/docs/MEMORY_PRESSURE.md b/docs/MEMORY_PRESSURE.md index 0c83390fba0..3d3832cac7e 100644 --- a/docs/MEMORY_PRESSURE.md +++ b/docs/MEMORY_PRESSURE.md @@ -165,7 +165,7 @@ The service manager provides two per-service settings that control the memory pressure handling: * The - [`MemoryPressureWatch=`](https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html#MemoryPressureWatch=) + [`MemoryPressureWatch=`](https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html#MemoryPressureWatch=) setting controls whether to enable the memory pressure protocol for the service in question. @@ -197,12 +197,12 @@ When memory pressure monitoring is enabled for a service via ## Memory Pressure Events in `sd-event` The -[`sd-event`](https://www.freedesktop.org/software/systemd/man/sd-event.html) +[`sd-event`](https://www.freedesktop.org/software/systemd/man/latest/sd-event.html) event loop library provides two API calls that encapsulate the functionality described above: * The - [`sd_event_add_memory_pressure()`](https://www.freedesktop.org/software/systemd/man/sd_event_add_memory_pressure.html) + [`sd_event_add_memory_pressure()`](https://www.freedesktop.org/software/systemd/man/latest/sd_event_add_memory_pressure.html) call implements the service-side of the memory pressure protocol and integrates it with an `sd-event` event loop. It reads the two environment variables, connects/opens the specified file, writes the specified data to it, diff --git a/docs/MY_SERVICE_CANT_GET_REALTIME.md b/docs/MY_SERVICE_CANT_GET_REALTIME.md index 26a2e6efcfa..8c2bb4f9628 100644 --- a/docs/MY_SERVICE_CANT_GET_REALTIME.md +++ b/docs/MY_SERVICE_CANT_GET_REALTIME.md @@ -43,7 +43,7 @@ This overrides the default logic for this one service only, and places all its processes back in the root cgroup of the "cpu" hierarchy, which has the full RT budget assigned. * A third option is to simply assign your service a realtime budget. For that use `ControlGroupAttribute=cpu.rt_runtime_us 500000` in its `[Service]` or suchlike. -See [the kernel documentation](http://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt) for details. +See [the kernel documentation](https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt) for details. The latter two options are not available for System V services. A possible solution is to write a small wrapper service file that simply calls the SysV script's start verb in `ExecStart=` and the stop verb in `ExecStop=`. (It also needs to set `RemainAfterExit=1` and `Type=forking`!) diff --git a/docs/NETWORK_ONLINE.md b/docs/NETWORK_ONLINE.md index ad9531ddf21..2837ec002a0 100644 --- a/docs/NETWORK_ONLINE.md +++ b/docs/NETWORK_ONLINE.md @@ -67,14 +67,14 @@ before any routable network interface is up). Its primary purpose is network client software that cannot operate without network. For more details about those targets, see the -[systemd.special(7)](https://www.freedesktop.org/software/systemd/man/systemd.special.html) +[systemd.special(7)](https://www.freedesktop.org/software/systemd/man/latest/systemd.special.html) man page. # Discussion LSB defines a `$network` dependency for legacy init scripts. However, it is defined [only very -unprecisely](http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/facilname.html) +unprecisely](https://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/facilname.html) and people tend to have different ideas what it is supposed to mean. Here are a couple of ideas people came up with so far: @@ -205,7 +205,7 @@ Here are a couple of possible approaches: actually (yet or ever) configured locally. This also makes your code robust towards network configuration changes. This is provided as `FreeBind=` for systemd services, see - [systemd.socket(5)](https://www.freedesktop.org/software/systemd/man/systemd.socket.html). + [systemd.socket(5)](https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html). An exception to the above recommendations is services which require network connectivity, but do not delay system startup. An example may be a service @@ -228,13 +228,13 @@ specific to those services. For example, `systemd-networkd-wait-online.service` will wait until all interfaces that are present and managed by -[systemd-networkd.service(8)](https://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html). +[systemd-networkd.service(8)](https://www.freedesktop.org/software/systemd/man/latest/systemd-networkd.service.html). are fully configured or failed and at least one link is online; see -[systemd-networkd-wait-online.service(8)](https://www.freedesktop.org/software/systemd/man/systemd-networkd-wait-online.service.html) +[systemd-networkd-wait-online.service(8)](https://www.freedesktop.org/software/systemd/man/latest/systemd-networkd-wait-online.service.html) for details. Those conditions are affected by the presence of configuration that matches various links, but also by settings like `Unmanaged=`, `RequiredForOnline=`, `RequiredFamilyForOnline=`; see -[systemd.network(5)](https://www.freedesktop.org/software/systemd/man/systemd.network.html). +[systemd.network(5)](https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html). It is also possible to plug in additional checks for network state. For example, to delay `network-online.target` until a specific host is diff --git a/docs/OPTIMIZATIONS.md b/docs/OPTIMIZATIONS.md index d63d09ed096..83a3838a503 100644 --- a/docs/OPTIMIZATIONS.md +++ b/docs/OPTIMIZATIONS.md @@ -96,7 +96,7 @@ This requires introduction of a new kernel interface to get notifications for cg 19. Make use of EXT4_IOC_MOVE_EXT in systemd's readahead implementation. This allows reordering/defragmentation of the files needed for boot. -According to the data from [http://e4rat.sourceforge.net/](http://e4rat.sourceforge.net/) this might shorten the boot time to 40%. +According to the data from [https://e4rat.sourceforge.net/](https://e4rat.sourceforge.net/) this might shorten the boot time to 40%. Implementation is not trivial, but given that we already support btrfs defragmentation and example code for this exists (e4rat as linked) should be fairly straightforward. 20. Compress readahead pack files with XZ or so.Since boot these days tends to be clearly IO bound (and not CPU bound) it might make sense to reduce the IO load for the pack file by compressing it. Since we already have a dependency on XZ we'd recommend using XZ for this. diff --git a/docs/PORTABILITY_AND_STABILITY.md b/docs/PORTABILITY_AND_STABILITY.md index 42d86f278e0..a5605f063b8 100644 --- a/docs/PORTABILITY_AND_STABILITY.md +++ b/docs/PORTABILITY_AND_STABILITY.md @@ -21,10 +21,10 @@ The stable interfaces are: Example: the output of `systemctl status` is not stable, but that of `systemctl show` is, because the former is intended to be human-readable and the latter computer readable, and this is documented in the man page. * **The protocol spoken on the socket referred to by `$NOTIFY_SOCKET`**, as documented in - [sd_notify(3)](https://www.freedesktop.org/software/systemd/man/sd_notify.html). Note that, although using + [sd_notify(3)](https://www.freedesktop.org/software/systemd/man/latest/sd_notify.html). Note that, although using libsystemd is a good choice, this protocol can also be reimplemented without external dependencies, as demonstrated in the example listed in - [sd_notify(3)](https://www.freedesktop.org/software/systemd/man/devel/sd_notify.html#Notes) + [sd_notify(3)](https://www.freedesktop.org/software/systemd/man/latest/sd_notify.html#Notes) * Some of the **"special" unit names** and their semantics. To be precise the ones that are necessary for normal services, and not those required only for early boot and late shutdown, with very few exceptions. @@ -116,55 +116,54 @@ And now, here's the list of (hopefully) all APIs that we have introduced with sy | API | Type | Covered by Interface Stability Promise | Fully documented | Known External Consumers | Reimplementable Independently | Known Other Implementations | systemd Implementation portable to other OSes or non-systemd distributions | | --- | ---- | ----------------------------------------------------------------------------------------- | ---------------- | ------------------------ | ----------------------------- | --------------------------- | -------------------------------------------------------------------------- | -| [hostnamed](https://www.freedesktop.org/software/systemd/man/org.freedesktop.hostname1.html) | D-Bus | yes | yes | GNOME | yes | [Ubuntu](https://launchpad.net/ubuntu/+source/ubuntu-system-service), [Gentoo](http://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially | -| [localed](https://www.freedesktop.org/software/systemd/man/org.freedesktop.locale1.html) | D-Bus | yes | yes | GNOME | yes | [Ubuntu](https://launchpad.net/ubuntu/+source/ubuntu-system-service), [Gentoo](http://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially | -| [timedated](https://www.freedesktop.org/software/systemd/man/org.freedesktop.timedate1.html) | D-Bus | yes | yes | GNOME | yes | [Gentoo](http://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially | +| [hostnamed](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.hostname1.html) | D-Bus | yes | yes | GNOME | yes | [Ubuntu](https://launchpad.net/ubuntu/+source/ubuntu-system-service), [Gentoo](https://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially | +| [localed](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.locale1.html) | D-Bus | yes | yes | GNOME | yes | [Ubuntu](https://launchpad.net/ubuntu/+source/ubuntu-system-service), [Gentoo](https://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially | +| [timedated](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.timedate1.html) | D-Bus | yes | yes | GNOME | yes | [Gentoo](https://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially | | [initrd interface](/INITRD_INTERFACE) | Environment, flag files | yes | yes | mkosi, dracut, ArchLinux | yes | ArchLinux | no | | [Container interface](/CONTAINER_INTERFACE) | Environment, Mounts | yes | yes | libvirt/LXC | yes | - | no | | [Boot Loader interface](/BOOT_LOADER_INTERFACE) | EFI variables | yes | yes | gummiboot | yes | - | no | -| [Service bus API](https://www.freedesktop.org/software/systemd/man/org.freedesktop.systemd1.html) | D-Bus | yes | yes | system-config-services | no | - | no | -| [logind](https://www.freedesktop.org/software/systemd/man/org.freedesktop.login1.html) | D-Bus | yes | yes | GNOME | no | - | no | -| [sd-bus.h API](https://www.freedesktop.org/software/systemd/man/sd-bus.html) | C Library | yes | yes | - | maybe | - | maybe | -| [sd-daemon.h API](https://www.freedesktop.org/software/systemd/man/sd-daemon.html) | C Library or Drop-in | yes | yes | numerous | yes | - | yes | -| [sd-device.h API](https://www.freedesktop.org/software/systemd/man/sd-device.html) | C Library | yes | no | numerous | yes | - | yes | -| [sd-event.h API](https://www.freedesktop.org/software/systemd/man/sd-event.html) | C Library | yes | yes | - | maybe | - | maybe | -| [sd-gpt.h API](https://www.freedesktop.org/software/systemd/man/sd-gpt.html) | Header Library | yes | no | - | yes | - | yes | -| [sd-hwdb.h API](https://www.freedesktop.org/software/systemd/man/sd-hwdb.html) | C Library | yes | yes | - | maybe | - | yes | -| [sd-id128.h API](https://www.freedesktop.org/software/systemd/man/sd-id128.html) | C Library | yes | yes | - | yes | - | yes | -| [sd-journal.h API](https://www.freedesktop.org/software/systemd/man/sd-journal.html) | C Library | yes | yes | - | maybe | - | no | -| [sd-login.h API](https://www.freedesktop.org/software/systemd/man/sd-login.html) | C Library | yes | yes | GNOME, polkit, ... | no | - | no | -| [sd-messages.h API](https://www.freedesktop.org/software/systemd/man/sd-messages.html) | Header Library | yes | yes | - | yes | python-systemd | yes | -| [sd-path.h API](https://www.freedesktop.org/software/systemd/man/sd-path.html) | C Library | yes | no | - | maybe | - | maybe | +| [Service bus API](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.systemd1.html) | D-Bus | yes | yes | system-config-services | no | - | no | +| [logind](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.login1.html) | D-Bus | yes | yes | GNOME | no | - | no | +| [sd-bus.h API](https://www.freedesktop.org/software/systemd/man/latest/sd-bus.html) | C Library | yes | yes | - | maybe | - | maybe | +| [sd-daemon.h API](https://www.freedesktop.org/software/systemd/man/latest/sd-daemon.html) | C Library or Drop-in | yes | yes | numerous | yes | - | yes | +| [sd-device.h API](https://www.freedesktop.org/software/systemd/man/latest/sd-device.html) | C Library | yes | no | numerous | yes | - | yes | +| [sd-event.h API](https://www.freedesktop.org/software/systemd/man/latest/sd-event.html) | C Library | yes | yes | - | maybe | - | maybe | +| [sd-gpt.h API](https://www.freedesktop.org/software/systemd/man/latest/libsystemd.html) | Header Library | yes | no | - | yes | - | yes | +| [sd-hwdb.h API](https://www.freedesktop.org/software/systemd/man/latest/sd-hwdb.html) | C Library | yes | yes | - | maybe | - | yes | +| [sd-id128.h API](https://www.freedesktop.org/software/systemd/man/latest/sd-id128.html) | C Library | yes | yes | - | yes | - | yes | +| [sd-journal.h API](https://www.freedesktop.org/software/systemd/man/latest/sd-journal.html) | C Library | yes | yes | - | maybe | - | no | +| [sd-login.h API](https://www.freedesktop.org/software/systemd/man/latest/sd-login.html) | C Library | yes | yes | GNOME, polkit, ... | no | - | no | +| [sd-messages.h API](https://www.freedesktop.org/software/systemd/man/latest/libsystemd.html) | Header Library | yes | yes | - | yes | python-systemd | yes | +| [sd-path.h API](https://www.freedesktop.org/software/systemd/man/latest/sd-path.html) | C Library | yes | no | - | maybe | - | maybe | | [$XDG_RUNTIME_DIR](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) | Environment | yes | yes | glib, GNOME | yes | - | no | -| [$LISTEN_FDS $LISTEN_PID FD Passing](https://www.freedesktop.org/software/systemd/man/sd_listen_fds.html) | Environment | yes | yes | numerous (via sd-daemon.h) | yes | - | no | -| [$NOTIFY_SOCKET Daemon Notifications](https://www.freedesktop.org/software/systemd/man/sd_notify.html) | Environment | yes | yes | a few, including udev | yes | - | no | +| [$LISTEN_FDS $LISTEN_PID FD Passing](https://www.freedesktop.org/software/systemd/man/latest/sd_listen_fds.html) | Environment | yes | yes | numerous (via sd-daemon.h) | yes | - | no | +| [$NOTIFY_SOCKET Daemon Notifications](https://www.freedesktop.org/software/systemd/man/latest/sd_notify.html) | Environment | yes | yes | a few, including udev | yes | - | no | | [argv[0][0]='@' Logic](/ROOT_STORAGE_DAEMONS) | `/proc` marking | yes | yes | mdadm | yes | - | no | -| [Unit file format](https://www.freedesktop.org/software/systemd/man/systemd.unit.html) | File format | yes | yes | numerous | no | - | no | -| [Network](https://www.freedesktop.org/software/systemd/man/systemd.network.html) & [Netdev file format](https://www.freedesktop.org/software/systemd/man/systemd.netdev.html) | File format | yes | yes | no | no | - | no | -| [Link file format](https://www.freedesktop.org/software/systemd/man/systemd.link.html) | File format | yes | yes | no | no | - | no | +| [Unit file format](https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html) | File format | yes | yes | numerous | no | - | no | +| [Network](https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html) & [Netdev file format](https://www.freedesktop.org/software/systemd/man/latest/systemd.netdev.html) | File format | yes | yes | no | no | - | no | +| [Link file format](https://www.freedesktop.org/software/systemd/man/latest/systemd.link.html) | File format | yes | yes | no | no | - | no | | [Journal File Format](/JOURNAL_FILE_FORMAT) | File format | yes | yes | - | maybe | - | no | | [Journal Export Format](JOURNAL_EXPORT_FORMATS#journal-export-format) | File format | yes | yes | - | yes | - | no | | [Journal JSON Format](JOURNAL_EXPORT_FORMATS#journal-json-format) | File format | yes | yes | - | yes | - | no | | [Password Agents](/PASSWORD_AGENTS) | Socket+Files | yes | yes | - | yes | - | no | -| [udev multi-seat properties](https://www.freedesktop.org/software/systemd/man/sd-login.html) | udev Property | yes | yes | X11, gdm | no | - | no | +| [udev multi-seat properties](https://www.freedesktop.org/software/systemd/man/latest/sd-login.html) | udev Property | yes | yes | X11, gdm | no | - | no | | udev session switch ACL properties | udev Property | no | no | - | no | - | no | -| [CLI of systemctl,...](https://www.freedesktop.org/software/systemd/man/systemctl.html) | CLI | yes | yes | numerous | no | - | no | -| [tmpfiles.d](https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html) | File format | yes | yes | numerous | yes | ArchLinux | partially | -| [sysusers.d](https://www.freedesktop.org/software/systemd/man/sysusers.d.html) | File format | yes | yes | unknown | yes | | partially | -| [/etc/machine-id](https://www.freedesktop.org/software/systemd/man/machine-id.html) | File format | yes | yes | D-Bus | yes | - | no | -| [binfmt.d](https://www.freedesktop.org/software/systemd/man/binfmt.d.html) | File format | yes | yes | numerous | yes | - | partially | -| [/etc/hostname](https://www.freedesktop.org/software/systemd/man/hostname.html) | File format | yes | yes | numerous (it's a Debian thing) | yes | Debian, ArchLinux | no | -| [/etc/locale.conf](https://www.freedesktop.org/software/systemd/man/locale.conf.html) | File format | yes | yes | - | yes | ArchLinux | partially | -| [/etc/machine-info](https://www.freedesktop.org/software/systemd/man/machine-info.html) | File format | yes | yes | - | yes | - | partially | -| [modules-load.d](https://www.freedesktop.org/software/systemd/man/modules-load.d.html) | File format | yes | yes | numerous | yes | - | partially | -| [/usr/lib/os-release](https://www.freedesktop.org/software/systemd/man/os-release.html) | File format | yes | yes | some | yes | Fedora, OpenSUSE, ArchLinux, Angstrom, Frugalware, others... | no | -| [sysctl.d](https://www.freedesktop.org/software/systemd/man/sysctl.d.html) | File format | yes | yes | some (it's a Debian thing) | yes | procps/Debian, ArchLinux | partially | -| [/etc/timezone](https://www.freedesktop.org/software/systemd/man/timezone.html) | File format | yes | yes | numerous (it's a Debian thing) | yes | Debian | partially | -| [/etc/vconsole.conf](https://www.freedesktop.org/software/systemd/man/vconsole.conf.html) | File format | yes | yes | - | yes | ArchLinux | partially | +| [CLI of systemctl,...](https://www.freedesktop.org/software/systemd/man/latest/systemctl.html) | CLI | yes | yes | numerous | no | - | no | +| [tmpfiles.d](https://www.freedesktop.org/software/systemd/man/latest/tmpfiles.d.html) | File format | yes | yes | numerous | yes | ArchLinux | partially | +| [sysusers.d](https://www.freedesktop.org/software/systemd/man/latest/sysusers.d.html) | File format | yes | yes | unknown | yes | | partially | +| [/etc/machine-id](https://www.freedesktop.org/software/systemd/man/latest/machine-id.html) | File format | yes | yes | D-Bus | yes | - | no | +| [binfmt.d](https://www.freedesktop.org/software/systemd/man/latest/binfmt.d.html) | File format | yes | yes | numerous | yes | - | partially | +| [/etc/hostname](https://www.freedesktop.org/software/systemd/man/latest/hostname.html) | File format | yes | yes | numerous (it's a Debian thing) | yes | Debian, ArchLinux | no | +| [/etc/locale.conf](https://www.freedesktop.org/software/systemd/man/latest/locale.conf.html) | File format | yes | yes | - | yes | ArchLinux | partially | +| [/etc/machine-info](https://www.freedesktop.org/software/systemd/man/latest/machine-info.html) | File format | yes | yes | - | yes | - | partially | +| [modules-load.d](https://www.freedesktop.org/software/systemd/man/latest/modules-load.d.html) | File format | yes | yes | numerous | yes | - | partially | +| [/usr/lib/os-release](https://www.freedesktop.org/software/systemd/man/latest/os-release.html) | File format | yes | yes | some | yes | Fedora, OpenSUSE, ArchLinux, Angstrom, Frugalware, others... | no | +| [sysctl.d](https://www.freedesktop.org/software/systemd/man/latest/sysctl.d.html) | File format | yes | yes | some (it's a Debian thing) | yes | procps/Debian, ArchLinux | partially | +| [/etc/vconsole.conf](https://www.freedesktop.org/software/systemd/man/latest/vconsole.conf.html) | File format | yes | yes | - | yes | ArchLinux | partially | | `/run` | File hierarchy change | yes | yes | numerous | yes | OpenSUSE, Debian, ArchLinux | no | -| [Generators](https://www.freedesktop.org/software/systemd/man/systemd.generator.html) | Subprocess | yes | yes | - | no | - | no | -| [System Updates](https://www.freedesktop.org/software/systemd/man/systemd.offline-updates.html) | System Mode | yes | yes | - | no | - | no | -| [Presets](https://www.freedesktop.org/software/systemd/man/systemd.preset.html) | File format | yes | yes | - | no | - | no | +| [Generators](https://www.freedesktop.org/software/systemd/man/latest/systemd.generator.html) | Subprocess | yes | yes | - | no | - | no | +| [System Updates](https://www.freedesktop.org/software/systemd/man/latest/systemd.offline-updates.html) | System Mode | yes | yes | - | no | - | no | +| [Presets](https://www.freedesktop.org/software/systemd/man/latest/systemd.preset.html) | File format | yes | yes | - | no | - | no | | Udev rules | File format | yes | yes | numerous | no | no | partially | diff --git a/docs/PORTABLE_SERVICES.md b/docs/PORTABLE_SERVICES.md index 22428d77b04..3fc94fc17f9 100644 --- a/docs/PORTABLE_SERVICES.md +++ b/docs/PORTABLE_SERVICES.md @@ -240,7 +240,7 @@ image. As mentioned, `mkosi -b` takes care of all of that for you, but any other image generator should work too. The -[os-release(5)](https://www.freedesktop.org/software/systemd/man/os-release.html) +[os-release(5)](https://www.freedesktop.org/software/systemd/man/latest/os-release.html) file may optionally be extended with a `PORTABLE_PREFIXES=` field listing all supported portable service prefixes for the image (see above). This is useful for informational purposes (as it allows recognizing portable service images @@ -251,7 +251,7 @@ validated against the (authenticated) image contents. If the field is not specified the image will work fine, but is not necessarily recognizable as portable service image, and any set of units included in the image may be attached, there are no restrictions enforced. -The [os-release(5)](https://www.freedesktop.org/software/systemd/man/os-release.html) may +The [os-release(5)](https://www.freedesktop.org/software/systemd/man/latest/os-release.html) may optionally be extended with a `PORTABLE_SCOPE=` field listing the scope in which the portable service may be used. This field may be set to either `system`, in which case the portable service can only be attached to the system instance of `systemd-portabled`, `user` in which case the portable @@ -370,7 +370,7 @@ PORTABLE_EXTENSION_NAME_AND_VERSION=app_1 ## Links -[`portablectl(1)`](https://www.freedesktop.org/software/systemd/man/portablectl.html)
-[`systemd-portabled.service(8)`](https://www.freedesktop.org/software/systemd/man/systemd-portabled.service.html)
+[`portablectl(1)`](https://www.freedesktop.org/software/systemd/man/latest/portablectl.html)
+[`systemd-portabled.service(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-portabled.service.html)
[Walkthrough for Portable Services](https://0pointer.net/blog/walkthrough-for-portable-services.html)
[Repo with examples](https://github.com/systemd/portable-walkthrough) diff --git a/docs/PREDICTABLE_INTERFACE_NAMES.md b/docs/PREDICTABLE_INTERFACE_NAMES.md index 9fa9fea7304..457321a56d9 100644 --- a/docs/PREDICTABLE_INTERFACE_NAMES.md +++ b/docs/PREDICTABLE_INTERFACE_NAMES.md @@ -81,10 +81,10 @@ With this new scheme in place, an administrator now has to check first what the You basically have three options: 1. You disable the assignment of fixed names, so that the unpredictable kernel names are used again. For this, simply mask udev's .link file for the default policy: `ln -s /dev/null /etc/systemd/network/99-default.link` -1. You create your own manual naming scheme, for example by naming your interfaces `internet0`, `dmz0` or `lan0`. For that create your own `.link` files in `/etc/systemd/network/`, that choose an explicit name or a better naming scheme for one, some, or all of your interfaces. See [systemd.link(5)](https://www.freedesktop.org/software/systemd/man/systemd.link.html) for more information. +1. You create your own manual naming scheme, for example by naming your interfaces `internet0`, `dmz0` or `lan0`. For that create your own `.link` files in `/etc/systemd/network/`, that choose an explicit name or a better naming scheme for one, some, or all of your interfaces. See [systemd.link(5)](https://www.freedesktop.org/software/systemd/man/latest/systemd.link.html) for more information. 1. You pass the `net.ifnames=0` on the kernel command line ## How does the new naming scheme look like, precisely? -That's documented in detail the [systemd.net-naming-scheme(7)](https://www.freedesktop.org/software/systemd/man/systemd.net-naming-scheme.html) man page. +That's documented in detail the [systemd.net-naming-scheme(7)](https://www.freedesktop.org/software/systemd/man/latest/systemd.net-naming-scheme.html) man page. Please refer to this in case you are wondering how to decode the new interface names. diff --git a/docs/PRESET.md b/docs/PRESET.md index ba3c0a4770d..2484c174e48 100644 --- a/docs/PRESET.md +++ b/docs/PRESET.md @@ -40,11 +40,11 @@ Preset files allow clean separation of enablement mechanism (inside the package ## Documentation -Documentation for the preset policy file format is available here: [http://www.freedesktop.org/software/systemd/man/systemd.preset.html](http://www.freedesktop.org/software/systemd/man/systemd.preset.html) +Documentation for the preset policy file format is available here: [https://www.freedesktop.org/software/systemd/man/latest/systemd.preset.html](https://www.freedesktop.org/software/systemd/man/latest/systemd.preset.html) -Documentation for "systemctl preset" you find here: [http://www.freedesktop.org/software/systemd/man/systemctl.html](http://www.freedesktop.org/software/systemd/man/systemctl.html) +Documentation for "systemctl preset" you find here: [https://www.freedesktop.org/software/systemd/man/latest/systemctl.html](https://www.freedesktop.org/software/systemd/man/latest/systemctl.html) -Documentation for the recommended package scriptlets you find here: [http://www.freedesktop.org/software/systemd/man/daemon.html](http://www.freedesktop.org/software/systemd/man/daemon.html) +Documentation for the recommended package scriptlets you find here: [https://www.freedesktop.org/software/systemd/man/latest/daemon.html](https://www.freedesktop.org/software/systemd/man/latest/daemon.html) ## How To diff --git a/docs/RANDOM_SEEDS.md b/docs/RANDOM_SEEDS.md index 49d33290c96..484cc4dbf72 100644 --- a/docs/RANDOM_SEEDS.md +++ b/docs/RANDOM_SEEDS.md @@ -153,7 +153,7 @@ boot, in order to ensure the entropy pool is filled up quickly. provides virtualized RNG hardware (and VM environments really should!). 2. The - [`systemd-random-seed.service`](https://www.freedesktop.org/software/systemd/man/systemd-random-seed.service.html) + [`systemd-random-seed.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-random-seed.service.html) system service will load a random seed from `/var/lib/systemd/random-seed` into the kernel entropy pool. By default it does not credit entropy for it though, since the seed is — more often than not — not reset when 'golden' master images of an OS are created, and thus replicated into every installation. @@ -167,12 +167,12 @@ boot, in order to ensure the entropy pool is filled up quickly. require an initialized entropy pool to operate correctly. 3. The - [`systemd-boot`](https://www.freedesktop.org/software/systemd/man/systemd-boot.html) + [`systemd-boot`](https://www.freedesktop.org/software/systemd/man/latest/systemd-boot.html) EFI boot loader included in systemd is able to maintain and provide a random seed stored in the EFI System Partition (ESP) to the booted OS, which allows booting up with a fully initialized entropy pool from earliest boot on. During installation of the boot loader (or when invoking - [`bootctlrandom-seed`](https://www.freedesktop.org/software/systemd/man/bootctl.html#random-seed)) + [`bootctlrandom-seed`](https://www.freedesktop.org/software/systemd/man/latest/bootctl.html#random-seed)) a seed file with an initial seed is placed in a file `/loader/random-seed` in the ESP. In addition, an identically sized randomized EFI variable called the 'system token' is set, which is written to the machine's firmware NVRAM. @@ -301,8 +301,8 @@ This primarily leaves two kind of systems in the cold: 5. *Why don't you use [`rngd`](https://github.com/nhorman/rng-tools), - [`haveged`](http://www.issihosts.com/haveged/), - [`egd`](http://egd.sourceforge.net/)? + [`haveged`](https://www.issihosts.com/haveged/), + [`egd`](https://egd.sourceforge.net/)? That's all you need!* Like `uuidd` above these are system services, hence come too late for our use-case. @@ -362,7 +362,7 @@ This primarily leaves two kind of systems in the cold: loader random seeds too!* Well, consider just switching to `systemd-boot`, it's worth it. See - [systemd-boot(7)](https://www.freedesktop.org/software/systemd/man/systemd-boot.html) + [systemd-boot(7)](https://www.freedesktop.org/software/systemd/man/latest/systemd-boot.html) for an introduction why. That said, any boot loader can re-implement the logic described above, and can pass a random seed that systemd as PID 1 will then upload into the kernel's entropy pool. For details see the diff --git a/docs/RESOLVED-VPNS.md b/docs/RESOLVED-VPNS.md index dbf43f9a384..6f013175e77 100644 --- a/docs/RESOLVED-VPNS.md +++ b/docs/RESOLVED-VPNS.md @@ -14,7 +14,7 @@ interfaces. For a verbose explanation of `systemd-resolved.service`'s domain routing logic, see its [man -page](https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html). This +page](https://www.freedesktop.org/software/systemd/man/latest/systemd-resolved.service.html). This document is supposed to provide examples to use the concepts for the specific purpose of managing VPN DNS configuration. @@ -184,14 +184,14 @@ the configuration to `systemd-resolved.service`? There are three relevant interfaces: 1. Ideally, you use D-Bus and talk to [`systemd-resolved.service`'s D-Bus - API](https://www.freedesktop.org/software/systemd/man/org.freedesktop.resolve1.html) + API](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.resolve1.html) directly. Use `SetLinkDomains()` to set the per-interface search and routing domains on the interfaces you manage, and `SetLinkDefaultRoute()` to manage the `default-route` boolean, all on the `org.freedesktop.resolve1.Manager` interface of the `/org/freedesktop/resolve1` object. 2. If that's not in the cards, you may shell out to - [`resolvectl`](https://www.freedesktop.org/software/systemd/man/resolvectl.html), + [`resolvectl`](https://www.freedesktop.org/software/systemd/man/latest/resolvectl.html), which is a thin wrapper around the D-Bus interface mentioned above. Use `resolvectl domain …` to set the search/routing domains and `resolvectl default-route …` to set the `default-route` boolean. diff --git a/docs/SYSLOG.md b/docs/SYSLOG.md index 9999a8dd8d7..d05b4d812d4 100644 --- a/docs/SYSLOG.md +++ b/docs/SYSLOG.md @@ -21,7 +21,7 @@ On a systemd system it is no longer OK to listen on /dev/log directly, and your If you do that then you will lose logging from STDOUT/STDERR of services (as well as other stuff). Your BSD compatible logging service should alias `syslog.service` to itself (i.e. symlink) when it is _enabled_. -That way [syslog.socket](http://cgit.freedesktop.org/systemd/systemd/plain/units/syslog.socket) will activate your service when things are logged. +That way [syslog.socket](https://github.com/systemd/systemd/blob/main/units/syslog.socket) will activate your service when things are logged. Of course, only one implementation of BSD syslog can own that symlink, and hence only one implementation can be enabled at a time, but that's intended as there can only be one process listening on that socket. (see below for details how to manage this symlink.) diff --git a/docs/TEMPORARY_DIRECTORIES.md b/docs/TEMPORARY_DIRECTORIES.md index b0b5da8c06c..7029a0ca4b4 100644 --- a/docs/TEMPORARY_DIRECTORIES.md +++ b/docs/TEMPORARY_DIRECTORIES.md @@ -22,7 +22,7 @@ If the `$TMPDIR` environment variable is set, use that path, and neither use `/tmp/` nor `/var/tmp/` directly. See -[file-hierarchy(7)](https://www.freedesktop.org/software/systemd/man/file-hierarchy.html) +[file-hierarchy(7)](https://www.freedesktop.org/software/systemd/man/latest/file-hierarchy.html) for details about these two (and most other) directories of a Linux system. ## Common Namespace diff --git a/docs/THE_CASE_FOR_THE_USR_MERGE.md b/docs/THE_CASE_FOR_THE_USR_MERGE.md index 30901eb7acd..4e92bf86553 100644 --- a/docs/THE_CASE_FOR_THE_USR_MERGE.md +++ b/docs/THE_CASE_FOR_THE_USR_MERGE.md @@ -41,9 +41,9 @@ A unified filesystem layout (as it results from the /usr merge) is more compatib - /usr/bin/foo may be called by other tools either via /usr/bin/foo or /bin/foo, both paths become fully equivalent through the /usr merge. The operating system ends up executing exactly the same file, simply because the symlink /bin just redirects the invocation to /usr/bin. -The historical justification for a /bin, /sbin and /lib separate from /usr no longer applies today. ([More on the historical justification for the split](http://lists.busybox.net/pipermail/busybox/2010-December/074114.html), by Rob Landley) They were split off to have selected tools on a faster hard disk (which was small, because it was more expensive) and to contain all the tools necessary to mount the slower /usr partition. Today, a separate /usr partition already must be mounted by the initramfs during early boot, thus making the justification for a split-off moot. In addition a lot of tools in /bin and /sbin in the status quo already lost the ability to run without a pre-mounted /usr. There is no valid reason anymore to have the operating system spread over multiple hierarchies, it lost its purpose. +The historical justification for a /bin, /sbin and /lib separate from /usr no longer applies today. ([More on the historical justification for the split](https://lists.busybox.net/pipermail/busybox/2010-December/074114.html), by Rob Landley) They were split off to have selected tools on a faster hard disk (which was small, because it was more expensive) and to contain all the tools necessary to mount the slower /usr partition. Today, a separate /usr partition already must be mounted by the initramfs during early boot, thus making the justification for a split-off moot. In addition a lot of tools in /bin and /sbin in the status quo already lost the ability to run without a pre-mounted /usr. There is no valid reason anymore to have the operating system spread over multiple hierarchies, it lost its purpose. -Solaris implemented the core part of the /usr merge 15 years ago already, and completed it with the introduction of Solaris 11. Solaris has /bin and /sbin only as symlinks in the root file system, the same way as you will have after the /usr merge: [Transitioning From Oracle Solaris 10 to Oracle Solaris 11 - User Environment Feature Changes](http://docs.oracle.com/cd/E23824_01/html/E24456/userenv-1.html). +Solaris implemented the core part of the /usr merge 15 years ago already, and completed it with the introduction of Solaris 11. Solaris has /bin and /sbin only as symlinks in the root file system, the same way as you will have after the /usr merge: [Transitioning From Oracle Solaris 10 to Oracle Solaris 11 - User Environment Feature Changes](https://docs.oracle.com/cd/E23824_01/html/E24456/userenv-1.html). Not implementing the /usr merge in your distribution will isolate it from upstream development. It will make porting of packages needlessly difficult, because packagers need to split up installed files into multiple directories and hard code different locations for tools; both will cause unnecessary incompatibilities. Several Linux distributions are agreeing with the benefits of the /usr merge and are already in the process to implement the /usr merge. This means that upstream projects will adapt quickly to the change, those making portability to your distribution harder. @@ -112,4 +112,4 @@ _With all vendor-supplied OS resources in a single directory /usr they may be sh --- -If this page didn't answer your questions you may continue reading [on the Fedora feature page](https://fedoraproject.org/wiki/Features/UsrMove) and this [mail from Lennart](http://thread.gmane.org/gmane.linux.redhat.fedora.devel/155511/focus=155792). +If this page didn't answer your questions you may continue reading [on the Fedora feature page](https://fedoraproject.org/wiki/Features/UsrMove). diff --git a/docs/TPM2_PCR_MEASUREMENTS.md b/docs/TPM2_PCR_MEASUREMENTS.md index 45ce6091ced..53317b73274 100644 --- a/docs/TPM2_PCR_MEASUREMENTS.md +++ b/docs/TPM2_PCR_MEASUREMENTS.md @@ -25,10 +25,10 @@ systemd will measure to PCRs 5 (`boot-loader-config`), 11 (`kernel-boot`), Currently, four components will issue TPM2 PCR measurements: -* The [`systemd-boot`](https://www.freedesktop.org/software/systemd/man/systemd-boot.html) boot menu (UEFI) -* The [`systemd-stub`](https://www.freedesktop.org/software/systemd/man/systemd-stub.html) boot stub (UEFI) -* The [`systemd-pcrextend`](https://www.freedesktop.org/software/systemd/man/systemd-pcrphase.service.html) measurement tool (userspace) -* The [`systemd-cryptsetup`](https://www.freedesktop.org/software/systemd/man/systemd-cryptsetup@.service.html) disk encryption tool (userspace) +* The [`systemd-boot`](https://www.freedesktop.org/software/systemd/man/latest/systemd-boot.html) boot menu (UEFI) +* The [`systemd-stub`](https://www.freedesktop.org/software/systemd/man/latest/systemd-stub.html) boot stub (UEFI) +* The [`systemd-pcrextend`](https://www.freedesktop.org/software/systemd/man/latest/systemd-pcrphase.service.html) measurement tool (userspace) +* The [`systemd-cryptsetup`](https://www.freedesktop.org/software/systemd/man/latest/systemd-cryptsetup@.service.html) disk encryption tool (userspace) A userspace measurement event log in a format close to TCG CEL-JSON is maintained in `/run/log/systemd/tpm2-measure.log`. diff --git a/docs/UIDS-GIDS.md b/docs/UIDS-GIDS.md index a83be3b35af..e475e2fd68c 100644 --- a/docs/UIDS-GIDS.md +++ b/docs/UIDS-GIDS.md @@ -93,7 +93,7 @@ possible. `systemd` defines a number of special UID ranges: 1. 60001…60513 → UIDs for home directories managed by - [`systemd-homed.service(8)`](https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html). + [`systemd-homed.service(8)`](https://www.freedesktop.org/software/systemd/man/latest/systemd-homed.service.html). UIDs from this range are automatically assigned to any home directory discovered, and persisted locally on first login. On different systems the same user might get different UIDs assigned in case of conflict, though it is @@ -113,7 +113,7 @@ possible. 3. 61184…65519 → UIDs for dynamic users are allocated from this range (see the `DynamicUser=` documentation in - [`systemd.exec(5)`](https://www.freedesktop.org/software/systemd/man/systemd.exec.html)). + [`systemd.exec(5)`](https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html)). This range has been chosen so that it is below the 16-bit boundary (i.e. below 65535), in order to provide compatibility with container environments that assign a 64K range of UIDs to containers using user namespacing. diff --git a/docs/USERDB_AND_DESKTOPS.md b/docs/USERDB_AND_DESKTOPS.md index b9a9eace590..4fcf3aa8e5a 100644 --- a/docs/USERDB_AND_DESKTOPS.md +++ b/docs/USERDB_AND_DESKTOPS.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later # `systemd-homed` and JSON User/Group Record Support in Desktop Environments Starting with version 245, systemd supports a new subsystem -[`systemd-homed.service`](https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html) +[`systemd-homed.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-homed.service.html) for managing regular ("human") users and their home directories. Along with it a new concept `userdb` got merged that brings rich, extensible JSON user/group records, extending the classic UNIX/glibc NSS `struct passwd`/`struct group` structures. @@ -60,7 +60,7 @@ A display manager which supports this kind of out-of-context screen lock operation needs to inform systemd-homed about this so that systemd-homed knows that it is safe to suspend the user's home directory on suspend. This is done via the `suspend=` argument to the -[`pam_systemd_home`](https://www.freedesktop.org/software/systemd/man/pam_systemd_home.html) +[`pam_systemd_home`](https://www.freedesktop.org/software/systemd/man/latest/pam_systemd_home.html) PAM module. A display manager should hence change its PAM stack configurationto set this parameter to on. `systemd-homed` will not suspend home directories if there's at least one active session of the user that does not support diff --git a/docs/USER_GROUP_API.md b/docs/USER_GROUP_API.md index 40df8f29011..cf83f19f222 100644 --- a/docs/USER_GROUP_API.md +++ b/docs/USER_GROUP_API.md @@ -23,7 +23,7 @@ The concepts described here define an IPC interface. Alternatively, user/group records may be dropped in number of drop-in directories as files where they are picked up in addition to the users/groups defined by this IPC logic. See -[`nss-systemd(8)`](https://www.freedesktop.org/software/systemd/man/nss-systemd.html) +[`nss-systemd(8)`](https://www.freedesktop.org/software/systemd/man/latest/nss-systemd.html) for details. This simple API only exposes only three method calls, and requires only a small diff --git a/docs/USER_NAMES.md b/docs/USER_NAMES.md index fe0ca7f863e..49b3861a2f3 100644 --- a/docs/USER_NAMES.md +++ b/docs/USER_NAMES.md @@ -73,9 +73,9 @@ below implements a deny list of what's not allowed and permits everything else. Strict user/group name syntax is enforced whenever a systemd component is used to register a user or group in the system, for example a system user/group using -[`systemd-sysusers.service`](https://www.freedesktop.org/software/systemd/man/systemd-sysusers.html) +[`systemd-sysusers.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-sysusers.html) or a regular user with -[`systemd-homed.service`](https://www.freedesktop.org/software/systemd/man/systemd-homed.html). +[`systemd-homed.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-homed.html). In strict mode, only uppercase and lowercase characters are allowed, as well as digits, underscores and hyphens. @@ -98,7 +98,7 @@ Written as regular expression the above is: `^[a-zA-Z_][a-zA-Z0-9_-]{0,30}$` Relaxed user/group name syntax is enforced whenever a systemd component accepts and makes use of user/group names registered by other (non-systemd) components of the system, for example in -[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/systemd-logind.html). +[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-logind.service.html). Relaxed syntax is also enforced by the `User=` setting in service unit files, i.e. for system services used for running services. diff --git a/docs/USER_RECORD.md b/docs/USER_RECORD.md index d9b420a09f8..9d6d8c1d03b 100644 --- a/docs/USER_RECORD.md +++ b/docs/USER_RECORD.md @@ -13,22 +13,22 @@ pairs, encoded as JSON. Specifically: -1. [`systemd-homed.service`](https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html) +1. [`systemd-homed.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-homed.service.html) manages `human` user home directories and embeds these JSON records directly in the home directory images (see [Home Directories](/HOME_DIRECTORY) for details). -2. [`pam_systemd`](https://www.freedesktop.org/software/systemd/man/pam_systemd.html) +2. [`pam_systemd`](https://www.freedesktop.org/software/systemd/man/latest/pam_systemd.html) processes these JSON records for users that log in, and applies various settings to the activated session, including environment variables, nice levels and more. -3. [`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html) +3. [`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-logind.service.html) processes these JSON records of users that log in, and applies various resource management settings to the per-user slice units it manages. This allows setting global limits on resource consumption by a specific user. -4. [`nss-systemd`](https://www.freedesktop.org/software/systemd/man/nss-systemd.html) +4. [`nss-systemd`](https://www.freedesktop.org/software/systemd/man/latest/nss-systemd.html) is a glibc NSS module that synthesizes classic NSS records from these JSON records, providing full backwards compatibility with the classic UNIX APIs both for look-up and enumeration. @@ -37,7 +37,7 @@ Specifically: effect of `DynamicUser=` in service unit files) as these advanced JSON records, making them discoverable to the rest of the system. -6. [`systemd-userdbd.service`](https://www.freedesktop.org/software/systemd/man/systemd-userdbd.service.html) +6. [`systemd-userdbd.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-userdbd.service.html) is a small service that can translate UNIX/glibc NSS records to these JSON user records. It also provides a unified [Varlink](https://varlink.org/) API for querying and enumerating records of this type, optionally acquiring them from various other services. @@ -82,7 +82,7 @@ JSON User Records may be transferred or written to disk in various protocols and formats. To inquire about such records defined on the local system use the [User/Group Lookup API via Varlink](/USER_GROUP_API). User/group records may also be dropped in number of drop-in directories as files. See -[`nss-systemd(8)`](https://www.freedesktop.org/software/systemd/man/nss-systemd.html) +[`nss-systemd(8)`](https://www.freedesktop.org/software/systemd/man/latest/nss-systemd.html) for details. ## Why JSON? @@ -260,7 +260,7 @@ This field must not contain control characters (such as `\n`) or colons (`:`), s as record separators in classic `/etc/passwd` files and similar formats. `emailAddress` → The email address of the user, formatted as string. -[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/pam_systemd.html) +[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/latest/pam_systemd.html) initializes the `$EMAIL` environment variable from this value for all login sessions. @@ -310,19 +310,19 @@ Takes an integer. Note that usually on UNIX the umask is noted in octal, but JSO integers are generally written in decimal, hence in this context we denote it umask in decimal too. The specified value should be in the valid range for umasks, i.e. 0000…0777 (in octal as typical in UNIX), or 0…511 (in decimal, how it actually appears in the JSON record). -This `umask` is automatically set by [`pam_systemd`](https://www.freedesktop.org/software/systemd/man/pam_systemd.html) +This `umask` is automatically set by [`pam_systemd`](https://www.freedesktop.org/software/systemd/man/latest/pam_systemd.html) for all login sessions of the user. `environment` → An array of strings, each containing an environment variable and its value to set for the user's login session, in a format compatible with [`putenv()`](https://man7.org/linux/man-pages/man3/putenv.3.html). Any environment variable listed here is automatically set by -[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/pam_systemd.html) +[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/latest/pam_systemd.html) for all login sessions of the user. `timeZone` → A string indicating a preferred timezone to use for the user. When logging in -[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/pam_systemd.html) +[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/latest/pam_systemd.html) will automatically initialize the `$TZ` environment variable from this string. The string should be a `tzdata` compatible location string, for example: `Europe/Berlin`. @@ -340,13 +340,13 @@ specify all the languages that they know, so software lacking translations in th primary language can try another language that the user knows rather than falling back to the default English. All entries in this field must be valid locale names, compatible with the `$LANG` variable, for example: `de_DE.UTF-8`. When logging in -[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/pam_systemd.html) +[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/latest/pam_systemd.html) will prepend `preferredLanguage` (if set) to this list (if set), remove duplicates, and then automatically initialize the `$LANGUAGE` variable with the resulting list. It will also initialize `$LANG` variable with the first entry in the resulting list. `niceLevel` → An integer value in the range -20…19. When logging in -[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/pam_systemd.html) +[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/latest/pam_systemd.html) will automatically initialize the login process' nice level to this value with, which is then inherited by all the user's processes, see [`setpriority()`](https://man7.org/linux/man-pages/man2/setpriority.2.html) for @@ -356,7 +356,7 @@ more information. (such as `RLIMIT_NOFILE` and similar). Their values should be an object with two keys `cur` and `max` for the soft and hard resource limit. When logging in -[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/pam_systemd.html) +[`pam_systemd`](https://www.freedesktop.org/software/systemd/man/latest/pam_systemd.html) will automatically initialize the login process' resource limits to these values, which is then inherited by all the user's processes, see [`setrlimit()`](https://man7.org/linux/man-pages/man2/setrlimit.2.html) for more @@ -408,7 +408,7 @@ access mask for the home directory when it is first created. tasks the user may start in parallel during system runtime. This counts all tasks (i.e. threads, where each process is at least one thread) the user starts or that are forked from these processes even if the user identity is changed (for example by setuid binaries/`su`/`sudo` and similar). -[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html) +[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-logind.service.html) enforces this by setting the `TasksMax` slice property for the user's slice `user-$UID.slice`. @@ -416,14 +416,14 @@ enforces this by setting the `TasksMax` slice property for the user's slice memory limits for all processes of the user (plus all processes forked off them that might have changed user identity), in bytes. Enforced by -[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html), +[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-logind.service.html), similar to `tasksMax`. `cpuWeight`/`ioWeight` → These take unsigned integers in the range 1…10000 (defaults to 100) and configure the CPU and IO scheduling weights for the user's processes as a whole. Also enforced by -[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html), +[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-logind.service.html), similar to `tasksMax`, `memoryHigh` and `memoryMax`. `mountNoDevices`/`mountNoSuid`/`mountNoExecute` → Three booleans that control @@ -574,7 +574,7 @@ display manager to pre-select the correct environment to launch when the user lo `stopDelayUSec` → An unsigned 64-bit integer, indicating the time in µs the per-user service manager is kept around after the user fully logged out. This value is honored by -[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html). If +[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-logind.service.html). If set to zero the per-user service manager is immediately terminated when the user logs out, and longer values optimize high-frequency log-ins as the necessary work to set up and tear down a log-in is reduced if the service manager stays running. @@ -582,7 +582,7 @@ necessary work to set up and tear down a log-in is reduced if the service manage `killProcesses` → A boolean. If true all processes of the user are automatically killed when the user logs out. This is enforced by -[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html). +[`systemd-logind.service`](https://www.freedesktop.org/software/systemd/man/latest/systemd-logind.service.html). If false any processes left around when the user logs out are left running. `passwordChangeMinUSec`/`passwordChangeMaxUSec` → An unsigned 64-bit integer, diff --git a/docs/WRITING_DESKTOP_ENVIRONMENTS.md b/docs/WRITING_DESKTOP_ENVIRONMENTS.md index 774308df782..decc807a362 100644 --- a/docs/WRITING_DESKTOP_ENVIRONMENTS.md +++ b/docs/WRITING_DESKTOP_ENVIRONMENTS.md @@ -15,11 +15,11 @@ This provides a number of new features, but also requires updating of the Deskto This document should be read together with [Writing Display Managers](/WRITING_DISPLAY_MANAGERS) which focuses on the porting work necessary for display managers. If required it is possible to implement ConsoleKit and systemd-logind support in the same desktop environment code, detecting at runtime which interface is needed. -The [sd_booted()](http://www.freedesktop.org/software/systemd/man/sd_booted.html) call may be used to determine at runtime whether systemd is used. +The [sd_booted()](https://www.freedesktop.org/software/systemd/man/latest/sd_booted.html) call may be used to determine at runtime whether systemd is used. To a certain level ConsoleKit and systemd-logind may be used side-by-side, but a number of features are not available if ConsoleKit is used. -Please have a look at the [Bus API of logind](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.login1.html) and the C API as documented in [sd-login(7)](http://www.freedesktop.org/software/systemd/man/sd-login.html). (Also see below) +Please have a look at the [Bus API of logind](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.login1.html) and the C API as documented in [sd-login(7)](https://www.freedesktop.org/software/systemd/man/latest/sd-login.html). (Also see below) Here are the suggested changes: @@ -44,6 +44,6 @@ Here are the suggested changes: Use logind's ListInhibitors() call to get a list of these inhibitors. See [Inhibitor Locks](/INHIBITOR_LOCKS) for further details on this. - If your DE contains a process viewer of some kind ("system monitor") it's a good idea to show session, service and seat information for each process. Use sd_pid_get_session(), sd_pid_get_unit(), sd_session_get_seat() to determine these. - For details see [sd-login(7)](http://www.freedesktop.org/software/systemd/man/sd-login.html). + For details see [sd-login(7)](https://www.freedesktop.org/software/systemd/man/latest/sd-login.html). And that's all! Thank you! diff --git a/docs/WRITING_DISPLAY_MANAGERS.md b/docs/WRITING_DISPLAY_MANAGERS.md index 1fe70d044a7..05640c671b2 100644 --- a/docs/WRITING_DISPLAY_MANAGERS.md +++ b/docs/WRITING_DISPLAY_MANAGERS.md @@ -16,11 +16,11 @@ true automatic multi-seat support, proper tracking of session processes, (option This document should be read together with [Writing Desktop Environments](/WRITING_DESKTOP_ENVIRONMENTS) which focuses on the porting work necessary for desktop environments. If required it is possible to implement ConsoleKit and systemd-logind support in the same display manager, detecting at runtime which interface is needed. -The [sd_booted()](http://www.freedesktop.org/software/systemd/man/sd_booted.html) call may be used to determine at runtime whether systemd is used. +The [sd_booted()](https://www.freedesktop.org/software/systemd/man/latest/sd_booted.html) call may be used to determine at runtime whether systemd is used. To a certain level ConsoleKit and systemd-logind may be used side-by-side, but a number of features are not available if ConsoleKit is used, for example automatic multi-seat support. -Please have a look at the [Bus API of logind](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.login1.html) and the C API as documented in [sd-login(7)](http://www.freedesktop.org/software/systemd/man/sd-login.html). +Please have a look at the [Bus API of logind](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.login1.html) and the C API as documented in [sd-login(7)](https://www.freedesktop.org/software/systemd/man/latest/sd-login.html). (Also see below) Minimal porting (without multi-seat) requires the following: @@ -51,7 +51,7 @@ In summary: porting a display manager from ConsoleKit to systemd primarily means And that's already it. While most information about seats, sessions and users is available on systemd-logind's D-Bus interface, this is not the only API. -The synchronous [sd-login(7)](http://www.freedesktop.org/software/systemd/man/sd-login.html) C interface is often easier to use and much faster too. +The synchronous [sd-login(7)](https://www.freedesktop.org/software/systemd/man/latest/sd-login.html) C interface is often easier to use and much faster too. In fact it is possible to implement the scheme above entirely without D-Bus relying only on this API. Note however, that this C API is purely passive, and if you want to execute an actually state changing operation you need to use the bus interface (for example, to switch sessions, or to kill sessions and suchlike). Also have a look at the [logind Bus API](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.login1.html). diff --git a/docs/_data/extra_pages.json b/docs/_data/extra_pages.json index 958ab86a6d7..0ff202328c8 100644 --- a/docs/_data/extra_pages.json +++ b/docs/_data/extra_pages.json @@ -42,22 +42,22 @@ { "category": "Manual Pages", "title": "Index", - "url": "https://www.freedesktop.org/software/systemd/man/" + "url": "https://www.freedesktop.org/software/systemd/man/latest/" }, { "category": "Manual Pages", "title": "Directives", - "url": "https://www.freedesktop.org/software/systemd/man/systemd.directives.html" + "url": "https://www.freedesktop.org/software/systemd/man/latest/systemd.directives.html" }, { "category": "Publications", "title": "Article in The H", - "url": "http://www.h-online.com/open/features/Control-Centre-The-systemd-Linux-init-system-1565543.html" + "url": "https://www.h-online.com/open/features/Control-Centre-The-systemd-Linux-init-system-1565543.html" }, { "category": "Publications", "title": "Article in The H, Part 2", - "url": "http://www.h-online.com/open/features/Booting-up-Tools-and-tips-for-systemd-1570630.html" + "url": "https://www.h-online.com/open/features/Booting-up-Tools-and-tips-for-systemd-1570630.html" }, { "category": "Publications", @@ -157,7 +157,7 @@ { "category": "Videos for Users and Administrators", "title": "Presentation about systemd at linux.conf.au 2011", - "url": "http://linuxconfau.blip.tv/file/4696791/" + "url": "https://www.youtube.com/watch?v=9XRj8ii91D0" }, { "category": "Videos for Users and Administrators", @@ -289,11 +289,6 @@ "title": "A more complete Russian translation (PDF)", "url": "http://www2.kangran.su/~nnz/pub/s4a/s4a_latest.pdf" }, - { - "category": "The systemd for Administrators Blog Series", - "title": "A Vietnamese translation", - "url": "https://archlinuxvn.org/doc/systemd/#lp" - }, { "category": "The systemd for Developers Series", "title": "#1: Socket Activation", @@ -407,12 +402,12 @@ { "category": "Documentation for Developers - external links", "title": "The 30 Biggest Myths about systemd", - "url": "http://0pointer.de/blog/projects/the-biggest-myths.html" + "url": "https://0pointer.de/blog/projects/the-biggest-myths.html" }, { "category": "Documentation for Developers - external links", "title": "Introduction to systemd in French", - "url": "http://lea-linux.org/documentations/Systemd" + "url": "https://lea-linux.org/documentations/Systemd" }, { "category": "The various distributions", @@ -437,12 +432,12 @@ { "category": "The various distributions", "title": "openSUSE instructions", - "url": "http://en.opensuse.org/SDB:Systemd" + "url": "https://en.opensuse.org/SDB:Systemd" }, { "category": "The various distributions", "title": "openSUSE bugtracker", - "url": "https://bugzilla.novell.com/buglist.cgi?short_desc=systemd&field0-0-0=product&type0-0-1=substring&field0-0-1=component&classification=openSUSE&value0-0-2=systemd&query_based_on=systemd&query_format=advanced&type0-0-3=substring&field0-0-3=status_whiteboard&value0-0-3=systemd&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=NEEDINFO&bug_status=REOPENED&short_desc_type=allwordssubstr&field0-0-2=short_desc&value0-0-1=systemd&type0-0-0=substring&value0-0-0=systemd&type0-0-2=substring&known_name=systemd" + "url": "https://bugzilla.opensuse.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=NEEDINFO&bug_status=REOPENED&classification=openSUSE&field0-0-0=product&field0-0-1=component&field0-0-2=short_desc&field0-0-3=status_whiteboard&known_name=systemd&query_based_on=systemd&query_format=advanced&short_desc=systemd&short_desc_type=allwordssubstr&type0-0-0=substring&type0-0-1=substring&type0-0-2=substring&type0-0-3=substring&value0-0-0=systemd&value0-0-1=systemd&value0-0-2=systemd&value0-0-3=systemd" }, { "category": "The various distributions", @@ -462,17 +457,17 @@ { "category": "The various distributions", "title": "Debian packages", - "url": "http://packages.debian.org/systemd" + "url": "https://packages.debian.org/systemd" }, { "category": "The various distributions", "title": "Debian wiki", - "url": "http://wiki.debian.org/systemd" + "url": "https://wiki.debian.org/systemd" }, { "category": "The various distributions", "title": "Debian bugtracker", - "url": "http://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=0;src=systemd" + "url": "https://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=0;src=systemd" }, { "category": "The various distributions", @@ -486,8 +481,8 @@ }, { "category": "The various distributions", - "title": "Mageia packages", - "url": "http://svnweb.mageia.org/packages/cauldron/systemd/current/" + "title": "Mageia wiki", + "url": "https://wiki.mageia.org/en/Features/Systemd" }, { "category": "The various distributions", @@ -497,12 +492,12 @@ { "category": "The various distributions", "title": "Gentoo packages", - "url": "http://packages.gentoo.org/package/sys-apps/systemd" + "url": "https://packages.gentoo.org/package/sys-apps/systemd" }, { "category": "The various distributions", "title": "Gentoo wiki", - "url": "http://wiki.gentoo.org/wiki/Systemd" + "url": "https://wiki.gentoo.org/wiki/Systemd" }, { "category": "The various distributions", diff --git a/docs/assets/systemd-logo.svg b/docs/assets/systemd-logo.svg index a8af438dca7..e22df7246c4 100644 --- a/docs/assets/systemd-logo.svg +++ b/docs/assets/systemd-logo.svg @@ -1,4 +1,4 @@ -