mirror of
https://github.com/systemd/systemd.git
synced 2025-02-25 21:57:32 +03:00
commit
e4885958dc
@ -32,3 +32,11 @@ indent_size = 8
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
max_line_length = 109
|
||||
|
||||
[docs/**/*.css]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[docs/**/*.html]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
@ -5,19 +5,21 @@ layout: default
|
||||
SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
---
|
||||
|
||||
# Code Map
|
||||
# The systemd Repository Architecture
|
||||
|
||||
## Code Map
|
||||
|
||||
This section will attempt to provide a high-level overview of the various
|
||||
components of the systemd repository.
|
||||
|
||||
# Source Code
|
||||
## Source Code
|
||||
|
||||
Directories in `src/` provide the implementation of all daemons, libraries and
|
||||
command-line tools shipped by the project. There are many, and more are
|
||||
constantly added, so we will not enumerate them all here — the directory
|
||||
names are self-explanatory.
|
||||
|
||||
## Shared Code
|
||||
### Shared Code
|
||||
|
||||
You might wonder what kind of common code belongs in `src/shared/` and what
|
||||
belongs in `src/basic/`. The split is like this: anything that is used to
|
||||
@ -44,14 +46,14 @@ To summarize:
|
||||
`src/journal/` that end up in `libjournal-client.a` convenience library.
|
||||
- may not use any code outside of `src/basic/`, `src/libsystemd/`, `src/shared/`
|
||||
|
||||
## PID 1
|
||||
### PID 1
|
||||
|
||||
Code located in `src/core/` implements the main logic of the systemd system (and user)
|
||||
service manager.
|
||||
|
||||
BPF helpers written in C and used by PID 1 can be found under `src/core/bpf/`.
|
||||
|
||||
### Implementing Unit Settings
|
||||
#### Implementing Unit Settings
|
||||
|
||||
The system and session manager supports a large number of unit settings. These can generally
|
||||
be configured in three ways:
|
||||
@ -73,12 +75,12 @@ D-Bus messages in `src/shared/bus-unit-util.c`
|
||||
So that they are exercised by the fuzzing CI, new unit settings should also be listed in the
|
||||
text files under `test/fuzz/fuzz-unit-file/`.
|
||||
|
||||
## systemd-udev
|
||||
### systemd-udev
|
||||
|
||||
Sources for the udev daemon and command-line tool (single binary) can be found under
|
||||
`src/udev/`.
|
||||
|
||||
## Unit Tests
|
||||
### Unit Tests
|
||||
|
||||
Source files found under `src/test/` implement unit-level testing, mostly for
|
||||
modules found in `src/basic/` and `src/shared/`, but not exclusively. Each test
|
||||
@ -91,7 +93,7 @@ and generally safe to run on the host without side effects.
|
||||
Ideally, every module in `src/basic/` and `src/shared/` should have a
|
||||
corresponding unit test under `src/test/`, exercising every helper function.
|
||||
|
||||
## Fuzzing
|
||||
### Fuzzing
|
||||
|
||||
Fuzzers are a type of unit tests that execute code on an externally-supplied
|
||||
input sample. Fuzzers are called `fuzz-*`. Fuzzers for `src/basic/` and
|
||||
@ -117,7 +119,7 @@ parallelization; see the links for oss-fuzz in [Code
|
||||
quality](https://systemd.io/CODE_QUALITY). For testing and debugging, fuzzers
|
||||
can be executed as any other program, including under `valgrind` or `gdb`.
|
||||
|
||||
# Integration Tests
|
||||
## Integration Tests
|
||||
|
||||
Sources in `test/TEST-*` implement system-level testing for executables,
|
||||
libraries and daemons that are shipped by the project. They require privileges
|
||||
@ -131,40 +133,40 @@ is the case.
|
||||
|
||||
See `test/README.testsuite` for more specific details.
|
||||
|
||||
# hwdb
|
||||
## hwdb
|
||||
|
||||
Rules built in the static hardware database shipped by the project can be found
|
||||
under `hwdb.d/`. Some of these files are updated automatically, some are filled
|
||||
by contributors.
|
||||
|
||||
# Documentation
|
||||
## Documentation
|
||||
|
||||
## systemd.io
|
||||
### systemd.io
|
||||
|
||||
Markdown files found under `docs/` are automatically published on the
|
||||
[systemd.io](https://systemd.io) website using Github Pages. A minimal unit test
|
||||
to ensure the formatting doesn't have errors is included in the
|
||||
`meson test -C build/ github-pages` run as part of the CI.
|
||||
|
||||
## Man pages
|
||||
### Man pages
|
||||
|
||||
Manpages for binaries and libraries, and the DBUS interfaces, can be found under
|
||||
`man/` and should ideally be kept in sync with changes to the corresponding
|
||||
binaries and libraries.
|
||||
|
||||
## Translations
|
||||
### Translations
|
||||
|
||||
Translations files for binaries and daemons, provided by volunteers, can be found
|
||||
under `po/` in the usual format. They are kept up to date by contributors and by
|
||||
automated tools.
|
||||
|
||||
# System Configuration files and presets
|
||||
## System Configuration files and presets
|
||||
|
||||
Presets (or templates from which they are generated) for various daemons and tools
|
||||
can be found under various directories such as `factory/`, `modprobe.d/`, `network/`,
|
||||
`presets/`, `rules.d/`, `shell-completion/`, `sysctl.d/`, `sysusers.d/`, `tmpfiles.d/`.
|
||||
|
||||
# Utilities for Developers
|
||||
## Utilities for Developers
|
||||
|
||||
`tools/`, `coccinelle/`, `.github/`, `.semaphore/`, `.lgtm/`, `.mkosi/` host various
|
||||
utilities and scripts that are used by maintainers and developers. They are not
|
||||
|
@ -42,7 +42,7 @@ Interface](https://systemd.io/BOOT_LOADER_INTERFACE).
|
||||
|
||||
| Name | Partition Type UUID | Allowed File Systems | Explanation |
|
||||
|------|---------------------|----------------------|-------------|
|
||||
| _Root Partition (Alpha)_ | `6523f8ae-3eb1-4e2a-a05a-18b695ae656f` | Any native, optionally in LUKS | On systems with matching architecture, the first partition with this type UUID on the disk containing the active EFI ESP is automatically mounted to the root directory <tt>/</tt>. If the partition is encrypted with LUKS or has dm-verity integrity data (see below), the device mapper file will be named `/dev/mapper/root`. |
|
||||
| _Root Partition (Alpha)_ | `6523f8ae-3eb1-4e2a-a05a-18b695ae656f` | Any native, optionally in LUKS | On systems with matching architecture, the first partition with this type UUID on the disk containing the active EFI ESP is automatically mounted to the root directory `/`. If the partition is encrypted with LUKS or has dm-verity integrity data (see below), the device mapper file will be named `/dev/mapper/root`. |
|
||||
| _Root Partition (ARC)_ | `d27f46ed-2919-4cb8-bd25-9531f3c16534` | ditto | ditto |
|
||||
| _Root Partition (32-bit ARM)_ | `69dad710-2ce4-4e3c-b16c-21a1d49abed3` | ditto | ditto |
|
||||
| _Root Partition (64-bit ARM/AArch64)_ | `b921b045-1df0-41c3-af44-4c6f280d3fae` | ditto | ditto |
|
||||
@ -151,14 +151,14 @@ Interface](https://systemd.io/BOOT_LOADER_INTERFACE).
|
||||
| _`/usr/` Verity Signature Partition (amd64/x86_64)_ | `e7bb33fb-06cf-4e81-8273-e543b413e2e2` | ditto | ditto |
|
||||
| _`/usr/` Verity Signature Partition (x86)_ | `974a71c0-de41-43c3-be5d-5c5ccd1ad2c0` | ditto | ditto |
|
||||
| _EFI System Partition_ | `c12a7328-f81f-11d2-ba4b-00a0c93ec93b` | VFAT | The ESP used for the current boot is automatically mounted to `/efi/` (or `/boot/` as fallback), unless a different partition is mounted there (possibly via `/etc/fstab`, or because the Extended Boot Loader Partition — see below — exists) or the directory is non-empty on the root disk. This partition type is defined by the [UEFI Specification](http://www.uefi.org/specifications). |
|
||||
| _Extended Boot Loader Partition_ | `bc13c2ff-59e6-4262-a352-b275fd6f7172` | Typically VFAT | The Extended Boot Loader Partition (XBOOTLDR) used for the current boot is automatically mounted to <tt>/boot/</tt>, unless a different partition is mounted there (possibly via <tt>/etc/fstab</tt>) or the directory is non-empty on the root disk. This partition type is defined by the [Boot Loader Specification](https://systemd.io/BOOT_LOADER_SPECIFICATION). |
|
||||
| _Extended Boot Loader Partition_ | `bc13c2ff-59e6-4262-a352-b275fd6f7172` | Typically VFAT | The Extended Boot Loader Partition (XBOOTLDR) used for the current boot is automatically mounted to `/boot/`, unless a different partition is mounted there (possibly via `/etc/fstab`) or the directory is non-empty on the root disk. This partition type is defined by the [Boot Loader Specification](https://systemd.io/BOOT_LOADER_SPECIFICATION). |
|
||||
| _Swap_ | `0657fd6d-a4ab-43c4-84e5-0933c84b4f4f` | Swap, optionally in LUKS | All swap partitions on the disk containing the root partition are automatically enabled. If the partition is encrypted with LUKS, the device mapper file will be named `/dev/mapper/swap`. This partition type predates the Discoverable Partitions Specification. |
|
||||
| _Home Partition_ | `933ac7e1-2eb4-4f13-b844-0e14e2aef915` | Any native, optionally in LUKS | The first partition with this type UUID on the disk containing the root partition is automatically mounted to `/home/`. If the partition is encrypted with LUKS, the device mapper file will be named `/dev/mapper/home`. |
|
||||
| _Server Data Partition_ | `3b8f8425-20e0-4f3b-907f-1a25a76f98e8` | Any native, optionally in LUKS | The first partition with this type UUID on the disk containing the root partition is automatically mounted to `/srv/`. If the partition is encrypted with LUKS, the device mapper file will be named `/dev/mapper/srv`. |
|
||||
| _Variable Data Partition_ | `4d21b016-b534-45c2-a9fb-5c16e091fd2d` | Any native, optionally in LUKS | The first partition with this type UUID on the disk containing the root partition is automatically mounted to `/var/` — under the condition that its partition UUID matches the first 128 bits of `HMAC-SHA256(machine-id, 0x4d21b016b53445c2a9fb5c16e091fd2d)` (i.e. the SHA256 HMAC hash of the binary type UUID keyed by the machine ID as read from [`/etc/machine-id`](https://www.freedesktop.org/software/systemd/man/machine-id.html). This special requirement is made because `/var/` (unlike the other partition types listed here) is inherently private to a specific installation and cannot possibly be shared between multiple OS installations on the same disk, and thus should be bound to a specific instance of the OS, identified by its machine ID. If the partition is encrypted with LUKS, the device mapper file will be named `/dev/mapper/var`. |
|
||||
| _Temporary Data Partition_ | `7ec6f557-3bc5-4aca-b293-16ef5df639d1` | Any native, optionally in LUKS | The first partition with this type UUID on the disk containing the root partition is automatically mounted to `/var/tmp/`. If the partition is encrypted with LUKS, the device mapper file will be named `/dev/mapper/tmp`. Note that the intended mount point is indeed `/var/tmp/`, not `/tmp/`. The latter is typically maintained in memory via <tt>tmpfs</tt> and does not require a partition on disk. In some cases it might be desirable to make `/tmp/` persistent too, in which case it is recommended to make it a symlink or bind mount to `/var/tmp/`, thus not requiring its own partition type UUID. |
|
||||
| _Temporary Data Partition_ | `7ec6f557-3bc5-4aca-b293-16ef5df639d1` | Any native, optionally in LUKS | The first partition with this type UUID on the disk containing the root partition is automatically mounted to `/var/tmp/`. If the partition is encrypted with LUKS, the device mapper file will be named `/dev/mapper/tmp`. Note that the intended mount point is indeed `/var/tmp/`, not `/tmp/`. The latter is typically maintained in memory via `tmpfs` and does not require a partition on disk. In some cases it might be desirable to make `/tmp/` persistent too, in which case it is recommended to make it a symlink or bind mount to `/var/tmp/`, thus not requiring its own partition type UUID. |
|
||||
| _Per-user Home Partition_ | `773f91ef-66d4-49b5-bd83-d683bf40ad16` | Any native, optionally in LUKS | A home partition of a user, managed by [`systemd-homed`](https://www.freedesktop.org/software/systemd/man/systemd-homed.html). |
|
||||
| _Generic Linux Data Partition_ | `0fc63daf-8483-4772-8e79-3d69d8477de4` | Any native, optionally in LUKS | No automatic mounting takes place for other Linux data partitions. This partition type should be used for all partitions that carry Linux file systems. The installer needs to mount them explicitly via entries in <tt>/etc/fstab</tt>. Optionally, these partitions may be encrypted with LUKS. This partition type predates the Discoverable Partitions Specification. |
|
||||
| _Generic Linux Data Partition_ | `0fc63daf-8483-4772-8e79-3d69d8477de4` | Any native, optionally in LUKS | No automatic mounting takes place for other Linux data partitions. This partition type should be used for all partitions that carry Linux file systems. The installer needs to mount them explicitly via entries in `/etc/fstab`. Optionally, these partitions may be encrypted with LUKS. This partition type predates the Discoverable Partitions Specification. |
|
||||
|
||||
Other GPT type IDs might be used on Linux, for example to mark software RAID or
|
||||
LVM partitions. The definitions of those GPT types is outside of the scope of
|
||||
|
@ -331,7 +331,7 @@ debug and set "processId" to "${command:pickProcess}". Now, when starting the de
|
||||
the PID of the process you want to debug. Run `systemctl show --property MainPID --value <component>` in the
|
||||
container to figure out the PID and enter it when asked and VSCode will attach to that process instead.
|
||||
|
||||
# Debugging systemd-boot
|
||||
## Debugging systemd-boot
|
||||
|
||||
During boot, systemd-boot and the stub loader will output a message like `systemd-boot@0x0A,0x0B`,
|
||||
providing the location of the text and data sections. These location can then be used to attach
|
||||
|
@ -112,7 +112,7 @@ and another one with `~corp.company.example` — both suffixes match a lookup fo
|
||||
`foo.corp.company.example`, but the latter interface wins, since the match is
|
||||
for four labels, while the other is for zero labels.
|
||||
|
||||
# Putting it Together
|
||||
## Putting it Together
|
||||
|
||||
Let's discuss how the three DNS routing concepts above are best used for a
|
||||
reasonably complex scenario consisting of:
|
||||
@ -159,7 +159,7 @@ else. If `privacy0` is then downed again, `wifi0` will get the regular DNS
|
||||
traffic again, and `company0` will still get the company's internal domain and
|
||||
IP subnet traffic and nothing else. Everything hence works as intended.
|
||||
|
||||
# How to Implement this in Your VPN Software
|
||||
## How to Implement this in Your VPN Software
|
||||
|
||||
Most likely you want to expose a boolean in some way that declares whether a
|
||||
specific VPN is of the *corporate* or the *privacy* kind:
|
||||
@ -177,7 +177,7 @@ specific VPN is of the *corporate* or the *privacy* kind:
|
||||
traditional, i.e. with any search domains as acquired, do not set `~.` though,
|
||||
and do not disable `default-route`.)
|
||||
|
||||
# The APIs
|
||||
## The APIs
|
||||
|
||||
Now we determined how we want to configure things, but how do you actually get
|
||||
the configuration to `systemd-resolved.service`? There are three relevant
|
||||
@ -222,7 +222,7 @@ interfaces:
|
||||
propagate the `default-route` boolean, nor can be used to configure the
|
||||
`~….in-addr.arpa` or `~.ip6.arpa` routing domains.
|
||||
|
||||
# Ordering
|
||||
## Ordering
|
||||
|
||||
When configuring per-interface DNS configuration settings it is wise to
|
||||
configure everything *before* actually upping the interface. Once the interface
|
||||
@ -235,7 +235,7 @@ as the former without the latter has no effect, but the latter without the
|
||||
former will result in DNS traffic possibly being generated, in a non-desirable
|
||||
way given that the routing information is not set yet.
|
||||
|
||||
# Downgrading Search Domains to Routing Domains
|
||||
## Downgrading Search Domains to Routing Domains
|
||||
|
||||
Many VPN implementations provide a way how VPN servers can inform VPN clients
|
||||
about search domains to use. In some cases it might make sense to install those
|
||||
|
@ -32,18 +32,18 @@ $ ninja -C build/ systemd-pot
|
||||
|
||||
This will generate file `po/systemd.pot` in the source tree.
|
||||
|
||||
Then simply copy it to a new <code><i>${lang_code}</i>.po</code> file, where
|
||||
<code><i>${lang_code}</i></code> is the two-letter code for a language
|
||||
Then simply copy it to a new `${lang_code}.po` file, where
|
||||
`${lang_code}` is the two-letter code for a language
|
||||
(possibly followed by a two-letter uppercase country code), according to the
|
||||
ISO 639 standard.
|
||||
|
||||
In short:
|
||||
|
||||
<pre>
|
||||
$ cp po/systemd.pot po/<i>${lang_code}</i>.po
|
||||
</pre>
|
||||
```
|
||||
$ cp po/systemd.pot po/${lang_code}.po
|
||||
```
|
||||
|
||||
Then edit the new <code>po/<i>${lang_code}</i>.po</code> file (for example,
|
||||
Then edit the new `po/${lang_code}.po` file (for example,
|
||||
using the `poedit` GUI editor.)
|
||||
|
||||
## Updating an Existing Translation
|
||||
|
@ -4,15 +4,13 @@
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="theme-color" content="#0021D8">
|
||||
<meta name="theme-color" content="#201A26">
|
||||
|
||||
<title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
|
||||
|
||||
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
|
||||
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" />
|
||||
|
||||
<link rel="stylesheet" href="{{ "/style.css" | prepend: site.baseurl }}">
|
||||
|
||||
|
||||
<link rel="icon" type="image/png" href="/favicon.png" />
|
||||
<link rel="icon" sizes="144x144" href="apple-touch-icon.png">
|
||||
</head>
|
||||
|
@ -5,7 +5,9 @@
|
||||
<div class="wrapper">
|
||||
|
||||
<a class="page-logo" href="{{ site.baseurl }}/">
|
||||
<img src="/assets/page-logo.svg" alt="systemd">
|
||||
<svg width="202" height="26" viewBox="0 0 202 26">
|
||||
<use href="/assets/systemd-logo.svg#systemd-logo"/>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
@ -1,7 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="202" height="26">
|
||||
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
|
||||
<path overflow="visible" font-weight="400" d="M0 0v26h10v-4H4V4h6V0zm76 0v4h6v18h-6v4h10V0z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" color="#000" font-family="sans-serif" fill="#201a26"/>
|
||||
<path word-spacing="0" letter-spacing=".2" font-size="12" font-weight="700" style="line-height:1.25;-inkscape-font-specification:'Heebo Bold';text-align:start" d="M113.498 14.926q-4.5-.96-4.5-3.878 0-1.079.609-1.981.621-.902 1.781-1.441 1.16-.54 2.707-.54 1.63 0 2.848.528 1.219.516 1.875 1.453.656.926.656 2.121h-3.539q0-.762-.457-1.183-.457-.434-1.394-.434-.774 0-1.243.363-.457.364-.457.938 0 .55.516.89.527.34 1.781.575 1.5.28 2.543.738 1.043.445 1.653 1.242.62.797.62 2.027 0 1.114-.667 2.004-.657.88-1.887 1.383-1.219.504-2.836.504-1.711 0-2.965-.621-1.242-.633-1.898-1.617-.645-.985-.645-2.051h3.34q.036.914.656 1.36.621.433 1.594.433.902 0 1.383-.34.492-.351.492-.937 0-.364-.223-.61-.21-.258-.773-.48-.55-.223-1.57-.446zm19.384-7.606l-5.086 14.58q-.293.831-.726 1.523-.434.703-1.266 1.195-.832.504-2.098.504-.457 0-.75-.048-.281-.046-.785-.176v-2.672q.176.02.527.02.95 0 1.418-.293.47-.293.715-.961l.352-.926-4.43-12.738h3.797l2.262 7.687 2.285-7.687zm5.884 7.606q-4.5-.96-4.5-3.878 0-1.079.61-1.981.62-.902 1.781-1.441 1.16-.54 2.707-.54 1.629 0 2.848.528 1.218.516 1.875 1.453.656.926.656 2.121h-3.539q0-.762-.457-1.183-.457-.434-1.395-.434-.773 0-1.242.363-.457.364-.457.938 0 .55.516.89.527.34 1.781.575 1.5.28 2.543.738 1.043.445 1.652 1.242.621.797.621 2.027 0 1.114-.668 2.004-.656.88-1.886 1.383-1.219.504-2.836.504-1.711 0-2.965-.621-1.242-.633-1.899-1.617-.644-.985-.644-2.051h3.34q.036.914.656 1.36.621.433 1.594.433.902 0 1.383-.34.492-.351.492-.937 0-.364-.223-.61-.21-.258-.773-.48-.551-.223-1.57-.446zm13.983 2.403q.574 0 .984-.082v2.66q-.914.328-2.086.328-3.727 0-3.727-3.797V9.899h-1.793V7.321h1.793v-3.14h3.54v3.14h2.132v2.578h-2.133v6.129q0 .75.293 1.031.293.27.997.27zm14.228-2.519h-8.016q.2 1.183.985 1.886.785.691 2.015.691.914 0 1.688-.34.785-.351 1.336-1.042l1.699 1.957q-.668.96-1.957 1.617-1.278.656-3 .656-1.946 0-3.387-.82-1.43-.82-2.203-2.227-.762-1.406-.762-3.105v-.446q0-1.898.715-3.386.715-1.489 2.063-2.32 1.347-.844 3.187-.844 1.793 0 3.059.761 1.265.762 1.922 2.168.656 1.395.656 3.293zm-3.469-2.65q-.024-1.03-.574-1.628-.54-.598-1.617-.598-1.008 0-1.582.668-.563.668-.739 1.84h4.512zm19.923-5.073q1.934 0 2.989 1.148 1.054 1.148 1.054 3.727v8.039h-3.539V11.95q0-.797-.21-1.23-.212-.446-.61-.61-.387-.164-.984-.164-.715 0-1.219.352-.504.34-.797.972.02.082.02.27V20h-3.54v-8.015q0-.797-.21-1.242-.211-.445-.61-.621-.386-.176-.996-.176-.68 0-1.183.304-.492.293-.797.844V20h-3.539V7.32h3.316l.118 1.419q.633-.797 1.547-1.22.926-.433 2.086-.433 1.172 0 2.016.48.855.47 1.312 1.442.633-.926 1.582-1.418.961-.504 2.203-.504zM201.398 2v18h-3.187l-.176-1.359q-1.243 1.594-3.212 1.594-1.535 0-2.66-.82-1.113-.832-1.699-2.285-.574-1.454-.574-3.317v-.246q0-1.934.574-3.398.586-1.465 1.7-2.274 1.124-.808 2.683-.808 1.805 0 3.012 1.37V2.001zm-5.672 15.376q1.488 0 2.133-1.266v-4.898q-.61-1.266-2.11-1.266-1.207 0-1.77.984-.55.985-.55 2.637v.246q0 1.629.54 2.602.55.96 1.757.96z" font-family="Heebo" fill="#201a26"/>
|
||||
<path d="M45 13L63 3v20z" fill="#30d475"/>
|
||||
<circle cx="30.001" cy="13.001" r="9" fill="#30d475"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.7 KiB |
7
docs/assets/systemd-logo.svg
Normal file
7
docs/assets/systemd-logo.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="202" height="26" viewBox="0 0 202 26" id="systemd-logo">
|
||||
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
|
||||
<path d="M0 0v26h10v-4H4V4h6V0zm76 0v4h6v18h-6v4h10V0z" fill="currentColor"/>
|
||||
<path d="M113.498 14.926q-4.5-.96-4.5-3.878 0-1.079.609-1.981.621-.902 1.781-1.441 1.16-.54 2.707-.54 1.63 0 2.848.528 1.219.516 1.875 1.453.656.926.656 2.121h-3.539q0-.762-.457-1.183-.457-.434-1.394-.434-.774 0-1.243.363-.457.364-.457.938 0 .55.516.89.527.34 1.781.575 1.5.28 2.543.738 1.043.445 1.653 1.242.62.797.62 2.027 0 1.114-.667 2.004-.657.88-1.887 1.383-1.219.504-2.836.504-1.711 0-2.965-.621-1.242-.633-1.898-1.617-.645-.985-.645-2.051h3.34q.036.914.656 1.36.621.433 1.594.433.902 0 1.383-.34.492-.351.492-.937 0-.364-.223-.61-.21-.258-.773-.48-.55-.223-1.57-.446zm19.384-7.606l-5.086 14.58q-.293.831-.726 1.523-.434.703-1.266 1.195-.832.504-2.098.504-.457 0-.75-.048-.281-.046-.785-.176v-2.672q.176.02.527.02.95 0 1.418-.293.47-.293.715-.961l.352-.926-4.43-12.738h3.797l2.262 7.687 2.285-7.687zm5.884 7.606q-4.5-.96-4.5-3.878 0-1.079.61-1.981.62-.902 1.781-1.441 1.16-.54 2.707-.54 1.629 0 2.848.528 1.218.516 1.875 1.453.656.926.656 2.121h-3.539q0-.762-.457-1.183-.457-.434-1.395-.434-.773 0-1.242.363-.457.364-.457.938 0 .55.516.89.527.34 1.781.575 1.5.28 2.543.738 1.043.445 1.652 1.242.621.797.621 2.027 0 1.114-.668 2.004-.656.88-1.886 1.383-1.219.504-2.836.504-1.711 0-2.965-.621-1.242-.633-1.899-1.617-.644-.985-.644-2.051h3.34q.036.914.656 1.36.621.433 1.594.433.902 0 1.383-.34.492-.351.492-.937 0-.364-.223-.61-.21-.258-.773-.48-.551-.223-1.57-.446zm13.983 2.403q.574 0 .984-.082v2.66q-.914.328-2.086.328-3.727 0-3.727-3.797V9.899h-1.793V7.321h1.793v-3.14h3.54v3.14h2.132v2.578h-2.133v6.129q0 .75.293 1.031.293.27.997.27zm14.228-2.519h-8.016q.2 1.183.985 1.886.785.691 2.015.691.914 0 1.688-.34.785-.351 1.336-1.042l1.699 1.957q-.668.96-1.957 1.617-1.278.656-3 .656-1.946 0-3.387-.82-1.43-.82-2.203-2.227-.762-1.406-.762-3.105v-.446q0-1.898.715-3.386.715-1.489 2.063-2.32 1.347-.844 3.187-.844 1.793 0 3.059.761 1.265.762 1.922 2.168.656 1.395.656 3.293zm-3.469-2.65q-.024-1.03-.574-1.628-.54-.598-1.617-.598-1.008 0-1.582.668-.563.668-.739 1.84h4.512zm19.923-5.073q1.934 0 2.989 1.148 1.054 1.148 1.054 3.727v8.039h-3.539V11.95q0-.797-.21-1.23-.212-.446-.61-.61-.387-.164-.984-.164-.715 0-1.219.352-.504.34-.797.972.02.082.02.27V20h-3.54v-8.015q0-.797-.21-1.242-.211-.445-.61-.621-.386-.176-.996-.176-.68 0-1.183.304-.492.293-.797.844V20h-3.539V7.32h3.316l.118 1.419q.633-.797 1.547-1.22.926-.433 2.086-.433 1.172 0 2.016.48.855.47 1.312 1.442.633-.926 1.582-1.418.961-.504 2.203-.504zM201.398 2v18h-3.187l-.176-1.359q-1.243 1.594-3.212 1.594-1.535 0-2.66-.82-1.113-.832-1.699-2.285-.574-1.454-.574-3.317v-.246q0-1.934.574-3.398.586-1.465 1.7-2.274 1.124-.808 2.683-.808 1.805 0 3.012 1.37V2.001zm-5.672 15.376q1.488 0 2.133-1.266v-4.898q-.61-1.266-2.11-1.266-1.207 0-1.77.984-.55.985-.55 2.637v.246q0 1.629.54 2.602.55.96 1.757.96z" fill="currentColor"/>
|
||||
<path d="M45 13L63 3v20z" fill="#30d475"/>
|
||||
<circle cx="30" cy="13" r="9" fill="#30d475"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
@ -3,9 +3,11 @@ layout: default
|
||||
SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
---
|
||||
|
||||
# System and Service Manager
|
||||
|
||||
systemd is a suite of basic building blocks for a Linux system. It provides a system and service manager that runs as PID 1 and starts the rest of the system.
|
||||
|
||||
systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux control groups, maintains mount and automount points, and implements an elaborate transactional dependency-based service control logic. systemd supports SysV and LSB init scripts and works as a replacement for sysvinit.
|
||||
|
||||
systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux control groups, maintains mount and automount points, and implements an elaborate transactional dependency-based service control logic. systemd supports SysV and LSB init scripts and works as a replacement for sysvinit.
|
||||
|
||||
Other parts include a logging daemon, utilities to control basic system configuration like the hostname, date, locale, maintain a list of logged-in users and running containers and virtual machines, system accounts, runtime directories and settings, and daemons to manage simple network configuration, network time synchronization, log forwarding, and name resolution.
|
||||
|
||||
@ -31,63 +33,63 @@ Other parts include a logging daemon, utilities to control basic system configur
|
||||
|
||||
---
|
||||
|
||||
<pre style="color:white; background-color:black; font-size:smaller; padding:6pt 8pt">
|
||||
Welcome to <span style="color:blue">Fedora 20 (Heisenbug)</span>!
|
||||
<pre class="intro-code-block">
|
||||
Welcome to <span class="color-blue">Fedora 20 (Heisenbug)</span>!
|
||||
|
||||
[ <span style="color:green">OK</span> ] Reached target Remote File Systems.
|
||||
[ <span style="color:green">OK</span> ] Listening on Delayed Shutdown Socket.
|
||||
[ <span style="color:green">OK</span> ] Listening on /dev/initctl Compatibility Named Pipe.
|
||||
[ <span style="color:green">OK</span> ] Reached target Paths.
|
||||
[ <span style="color:green">OK</span> ] Reached target Encrypted Volumes.
|
||||
[ <span style="color:green">OK</span> ] Listening on Journal Socket.
|
||||
[ <span class="color-green">OK</span> ] Reached target Remote File Systems.
|
||||
[ <span class="color-green">OK</span> ] Listening on Delayed Shutdown Socket.
|
||||
[ <span class="color-green">OK</span> ] Listening on /dev/initctl Compatibility Named Pipe.
|
||||
[ <span class="color-green">OK</span> ] Reached target Paths.
|
||||
[ <span class="color-green">OK</span> ] Reached target Encrypted Volumes.
|
||||
[ <span class="color-green">OK</span> ] Listening on Journal Socket.
|
||||
Mounting Huge Pages File System...
|
||||
Mounting POSIX Message Queue File System...
|
||||
Mounting Debug File System...
|
||||
Starting Journal Service...
|
||||
[ <span style="color:green">OK</span> ] Started Journal Service.
|
||||
[ <span class="color-green">OK</span> ] Started Journal Service.
|
||||
Mounting Configuration File System...
|
||||
Mounting FUSE Control File System...
|
||||
[ <span style="color:green">OK</span> ] Created slice Root Slice.
|
||||
[ <span style="color:green">OK</span> ] Created slice User and Session Slice.
|
||||
[ <span style="color:green">OK</span> ] Created slice System Slice.
|
||||
[ <span style="color:green">OK</span> ] Reached target Slices.
|
||||
[ <span style="color:green">OK</span> ] Reached target Swap.
|
||||
[ <span class="color-green">OK</span> ] Created slice Root Slice.
|
||||
[ <span class="color-green">OK</span> ] Created slice User and Session Slice.
|
||||
[ <span class="color-green">OK</span> ] Created slice System Slice.
|
||||
[ <span class="color-green">OK</span> ] Reached target Slices.
|
||||
[ <span class="color-green">OK</span> ] Reached target Swap.
|
||||
Mounting Temporary Directory...
|
||||
[ <span style="color:green">OK</span> ] Reached target Local File Systems (Pre).
|
||||
[ <span class="color-green">OK</span> ] Reached target Local File Systems (Pre).
|
||||
Starting Load Random Seed...
|
||||
Starting Load/Save Random Seed...
|
||||
[ <span style="color:green">OK</span> ] Mounted Huge Pages File System.
|
||||
[ <span style="color:green">OK</span> ] Mounted POSIX Message Queue File System.
|
||||
[ <span style="color:green">OK</span> ] Mounted Debug File System.
|
||||
[ <span style="color:green">OK</span> ] Mounted Configuration File System.
|
||||
[ <span style="color:green">OK</span> ] Mounted FUSE Control File System.
|
||||
[ <span style="color:green">OK</span> ] Mounted Temporary Directory.
|
||||
[ <span style="color:green">OK</span> ] Started Load Random Seed.
|
||||
[ <span style="color:green">OK</span> ] Started Load/Save Random Seed.
|
||||
[ <span style="color:green">OK</span> ] Reached target Local File Systems.
|
||||
[ <span class="color-green">OK</span> ] Mounted Huge Pages File System.
|
||||
[ <span class="color-green">OK</span> ] Mounted POSIX Message Queue File System.
|
||||
[ <span class="color-green">OK</span> ] Mounted Debug File System.
|
||||
[ <span class="color-green">OK</span> ] Mounted Configuration File System.
|
||||
[ <span class="color-green">OK</span> ] Mounted FUSE Control File System.
|
||||
[ <span class="color-green">OK</span> ] Mounted Temporary Directory.
|
||||
[ <span class="color-green">OK</span> ] Started Load Random Seed.
|
||||
[ <span class="color-green">OK</span> ] Started Load/Save Random Seed.
|
||||
[ <span class="color-green">OK</span> ] Reached target Local File Systems.
|
||||
Starting Recreate Volatile Files and Directories...
|
||||
Starting Trigger Flushing of Journal to Persistent Storage...
|
||||
[ <span style="color:green">OK</span> ] Started Recreate Volatile Files and Directories.
|
||||
[ <span class="color-green">OK</span> ] Started Recreate Volatile Files and Directories.
|
||||
Starting Record System Reboot/Shutdown in UTMP...
|
||||
[ <span style="color:green">OK</span> ] Started Trigger Flushing of Journal to Persistent Storage.
|
||||
[ <span style="color:green">OK</span> ] Started Record System Reboot/Shutdown in UTMP.
|
||||
[ <span style="color:green">OK</span> ] Reached target System Initialization.
|
||||
[ <span style="color:green">OK</span> ] Reached target Timers.
|
||||
[ <span style="color:green">OK</span> ] Listening on D-Bus System Message Bus Socket.
|
||||
[ <span style="color:green">OK</span> ] Reached target Sockets.
|
||||
[ <span style="color:green">OK</span> ] Reached target Basic System.
|
||||
[ <span class="color-green">OK</span> ] Started Trigger Flushing of Journal to Persistent Storage.
|
||||
[ <span class="color-green">OK</span> ] Started Record System Reboot/Shutdown in UTMP.
|
||||
[ <span class="color-green">OK</span> ] Reached target System Initialization.
|
||||
[ <span class="color-green">OK</span> ] Reached target Timers.
|
||||
[ <span class="color-green">OK</span> ] Listening on D-Bus System Message Bus Socket.
|
||||
[ <span class="color-green">OK</span> ] Reached target Sockets.
|
||||
[ <span class="color-green">OK</span> ] Reached target Basic System.
|
||||
Starting Permit User Sessions...
|
||||
Starting D-Bus System Message Bus...
|
||||
[ <span style="color:green">OK</span> ] Started D-Bus System Message Bus.
|
||||
[ <span class="color-green">OK</span> ] Started D-Bus System Message Bus.
|
||||
Starting Login Service...
|
||||
Starting Cleanup of Temporary Directories...
|
||||
[ <span style="color:green">OK</span> ] Started Permit User Sessions.
|
||||
[ <span style="color:green">OK</span> ] Started Cleanup of Temporary Directories.
|
||||
[ <span class="color-green">OK</span> ] Started Permit User Sessions.
|
||||
[ <span class="color-green">OK</span> ] Started Cleanup of Temporary Directories.
|
||||
Starting Console Getty...
|
||||
[ <span style="color:green">OK</span> ] Started Console Getty.
|
||||
[ <span style="color:green">OK</span> ] Reached target Login Prompts.
|
||||
[ <span style="color:green">OK</span> ] Started Login Service.
|
||||
[ <span style="color:green">OK</span> ] Reached target Multi-User System.
|
||||
[ <span class="color-green">OK</span> ] Started Console Getty.
|
||||
[ <span class="color-green">OK</span> ] Reached target Login Prompts.
|
||||
[ <span class="color-green">OK</span> ] Started Login Service.
|
||||
[ <span class="color-green">OK</span> ] Reached target Multi-User System.
|
||||
|
||||
Fedora release 20 (Heisenbug)
|
||||
Kernel 3.9.2-200.fc18.x86_64 on an x86_64 (console)
|
||||
|
623
docs/style.css
623
docs/style.css
@ -12,6 +12,53 @@
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* Variables */
|
||||
:root {
|
||||
--sd-brand-black: hsl(270, 19%, 13%); /* #201A26; */
|
||||
--sd-brand-green: hsl(145, 66%, 51%); /* #30D475; */
|
||||
--sd-brand-white: #fff;
|
||||
|
||||
--sd-green: hsl(145, 66%, 43%); /* #26b763 */
|
||||
--sd-gray-extralight: hsl(30, 10%, 96%); /* #f6f5f4 */
|
||||
--sd-gray-light: hsl(30, 10%, 92%);
|
||||
--sd-gray: hsl(30, 10%, 85%);
|
||||
--sd-gray-dark: hsl(257, 23%, 20%);
|
||||
--sd-gray-extradark: hsl(257, 23%, 16%); /* #241f31 */
|
||||
--sd-blue: hsl(200, 66%, 55%);
|
||||
|
||||
--sd-highlight-bg-light: rgba(255, 255, 255, 1);
|
||||
--sd-highlight-bg-dark: rgba(0, 0, 0, .6);
|
||||
--sd-highlight-inline-bg-light: rgba(0, 0, 0, 0.07);
|
||||
--sd-highlight-inline-bg-dark: rgba(255, 255, 255, 0.1);
|
||||
|
||||
--sd-font-weight-normal: 400;
|
||||
--sd-font-weight-bold: 600;
|
||||
|
||||
/* Light mode variables */
|
||||
--sd-foreground-color: var(--sd-gray-extradark);
|
||||
--sd-background-color: var(--sd-gray-extralight);
|
||||
--sd-logo-color: var(--sd-brand-black);
|
||||
--sd-link-color: var(--sd-green);
|
||||
--sd-small-color: var(--sd-gray-dark);
|
||||
--sd-highlight-bg: var(--sd-highlight-bg-light);
|
||||
--sd-highlight-inline-bg: var(--sd-highlight-inline-bg-light);
|
||||
--sd-link-font-weight: var(--sd-font-weight-bold);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
color-scheme: dark;
|
||||
--sd-foreground-color: var(--sd-gray);
|
||||
--sd-background-color: var(--sd-brand-black);
|
||||
--sd-logo-color: var(--sd-brand-white);
|
||||
--sd-link-color: var(--sd-brand-green);
|
||||
--sd-small-color: var(--sd-gray);
|
||||
--sd-highlight-bg: var(--sd-highlight-bg-dark);
|
||||
--sd-highlight-inline-bg: var(--sd-highlight-inline-bg-dark);
|
||||
--sd-link-font-weight: var(--sd-font-weight-normal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Typography */
|
||||
* {
|
||||
-moz-box-sizing: border-box;
|
||||
@ -21,24 +68,24 @@
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 16px;
|
||||
font-size: 1rem;
|
||||
font-family: "Heebo", sans-serif;
|
||||
font-weight: 400;
|
||||
line-height: 1.6;
|
||||
}
|
||||
body {
|
||||
color: #241f31;
|
||||
background-color: #f6f5f4;
|
||||
color: var(--sd-foreground-color);
|
||||
background-color: var(--sd-background-color);
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin: 1rem 0 10px;
|
||||
margin: 1rem 0 0.625rem;
|
||||
font-weight: 600;
|
||||
line-height: 1.25;
|
||||
}
|
||||
h1 {
|
||||
text-align: center;
|
||||
font-size: 30px;
|
||||
font-weight: 100;
|
||||
font-size: 1.87rem;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
@ -46,17 +93,20 @@ h1 {
|
||||
h1 {
|
||||
margin-left: 10%;
|
||||
margin-right: 10%;
|
||||
font-size: 38px;
|
||||
font-size: 2.375em;
|
||||
}
|
||||
}
|
||||
h2 {
|
||||
margin-top: 3rem;
|
||||
font-size: 1.2rem;
|
||||
font-size: 1.25rem;
|
||||
margin-top: 2.5em;
|
||||
}
|
||||
h3 {
|
||||
font-size: 1.15rem;
|
||||
}
|
||||
a {
|
||||
font-weight: 600;
|
||||
font-weight: var(--sd-link-font-weight);
|
||||
text-decoration: none;
|
||||
color: #26b763;
|
||||
color: var(--sd-link-color);
|
||||
cursor: pointer;
|
||||
}
|
||||
a:hover {
|
||||
@ -66,7 +116,7 @@ b {
|
||||
font-weight: 600;
|
||||
}
|
||||
small {
|
||||
color: #777;
|
||||
color: var(--sd-small-color);
|
||||
}
|
||||
hr {
|
||||
margin: 3rem auto 4rem;
|
||||
@ -82,27 +132,52 @@ hr {
|
||||
max-width: 720px;
|
||||
}
|
||||
|
||||
/* Custom content */
|
||||
.intro-code-block {
|
||||
background-color: var(--sd-brand-black);
|
||||
color: var(--sd-brand-white);
|
||||
font-size: 0.875rem;
|
||||
padding: 1em;
|
||||
overflow-x: auto;
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.intro-code-block {
|
||||
background-color: var(--sd-highlight-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Singletons */
|
||||
.page-logo {
|
||||
display: block;
|
||||
padding: 5rem 0 3rem;
|
||||
color: var(--sd-logo-color);
|
||||
}
|
||||
.page-logo > img {
|
||||
.page-logo > svg {
|
||||
display: block;
|
||||
width: 12.625em;
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.brand-white {
|
||||
background-color: #fff;
|
||||
background-color: var(--sd-brand-white);
|
||||
}
|
||||
|
||||
.brand-green {
|
||||
background-color: #30D475;
|
||||
background-color: var(--sd-brand-green);
|
||||
}
|
||||
|
||||
.brand-black {
|
||||
background-color: #201A26;
|
||||
color: white;
|
||||
background-color: var(--sd-brand-black);
|
||||
color: var(--sd-brand-white);
|
||||
}
|
||||
|
||||
.color-green {
|
||||
color: var(--sd-brand-green);
|
||||
}
|
||||
|
||||
.color-blue {
|
||||
color: var(--sd-blue);
|
||||
}
|
||||
|
||||
.page-link::after {
|
||||
@ -123,232 +198,324 @@ tbody td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Github Code Highlighting */
|
||||
/* Rouge Code Highlight, github style */
|
||||
/* Generated with: rougify style github | sed '/background-color: #f8f8f8/d' */
|
||||
.highlight table td { padding: 5px; }
|
||||
.highlight table pre { margin: 0; }
|
||||
.highlight .cm {
|
||||
color: #999988;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .cp {
|
||||
color: #999999;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .c1 {
|
||||
color: #999988;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .cs {
|
||||
color: #999999;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .c, .highlight .ch, .highlight .cd, .highlight .cpf {
|
||||
color: #999988;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .err {
|
||||
color: #a61717;
|
||||
background-color: #e3d2d2;
|
||||
}
|
||||
.highlight .gd {
|
||||
color: #000000;
|
||||
background-color: #ffdddd;
|
||||
}
|
||||
.highlight .ge {
|
||||
color: #000000;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .gr {
|
||||
color: #aa0000;
|
||||
}
|
||||
.highlight .gh {
|
||||
color: #999999;
|
||||
}
|
||||
.highlight .gi {
|
||||
color: #000000;
|
||||
background-color: #ddffdd;
|
||||
}
|
||||
.highlight .go {
|
||||
color: #888888;
|
||||
}
|
||||
.highlight .gp {
|
||||
color: #555555;
|
||||
}
|
||||
.highlight .gs {
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .gu {
|
||||
color: #aaaaaa;
|
||||
}
|
||||
.highlight .gt {
|
||||
color: #aa0000;
|
||||
}
|
||||
.highlight .kc {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kd {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kn {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kp {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kr {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kt {
|
||||
color: #445588;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .k, .highlight .kv {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .mf {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .mh {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .il {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .mi {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .mo {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .m, .highlight .mb, .highlight .mx {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .sb {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sc {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sd {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .s2 {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .se {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sh {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .si {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sx {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sr {
|
||||
color: #009926;
|
||||
}
|
||||
.highlight .s1 {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .ss {
|
||||
color: #990073;
|
||||
}
|
||||
.highlight .s, .highlight .sa, .highlight .dl {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .na {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .bp {
|
||||
color: #999999;
|
||||
}
|
||||
.highlight .nb {
|
||||
color: #0086B3;
|
||||
}
|
||||
.highlight .nc {
|
||||
color: #445588;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .no {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .nd {
|
||||
color: #3c5d5d;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .ni {
|
||||
color: #800080;
|
||||
}
|
||||
.highlight .ne {
|
||||
color: #990000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .nf, .highlight .fm {
|
||||
color: #990000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .nl {
|
||||
color: #990000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .nn {
|
||||
color: #555555;
|
||||
}
|
||||
.highlight .nt {
|
||||
color: #000080;
|
||||
}
|
||||
.highlight .vc {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .vg {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .vi {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .nv, .highlight .vm {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .ow {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .o {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .w {
|
||||
color: #bbbbbb;
|
||||
}
|
||||
.highlight {
|
||||
background-color: #f8f8f8;
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
.highlight .cm {
|
||||
color: #999988;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .cp {
|
||||
color: #999999;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .c1 {
|
||||
color: #999988;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .cs {
|
||||
color: #999999;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .c, .highlight .ch, .highlight .cd, .highlight .cpf {
|
||||
color: #999988;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .err {
|
||||
color: #a61717;
|
||||
background-color: #e3d2d2;
|
||||
}
|
||||
.highlight .gd {
|
||||
color: #000000;
|
||||
background-color: #ffdddd;
|
||||
}
|
||||
.highlight .ge {
|
||||
color: #000000;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .gr {
|
||||
color: #aa0000;
|
||||
}
|
||||
.highlight .gh {
|
||||
color: #999999;
|
||||
}
|
||||
.highlight .gi {
|
||||
color: #000000;
|
||||
background-color: #ddffdd;
|
||||
}
|
||||
.highlight .go {
|
||||
color: #888888;
|
||||
}
|
||||
.highlight .gp {
|
||||
color: #555555;
|
||||
}
|
||||
.highlight .gs {
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .gu {
|
||||
color: #aaaaaa;
|
||||
}
|
||||
.highlight .gt {
|
||||
color: #aa0000;
|
||||
}
|
||||
.highlight .kc {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kd {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kn {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kp {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kr {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .kt {
|
||||
color: #445588;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .k, .highlight .kv {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .mf {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .mh {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .il {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .mi {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .mo {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .m, .highlight .mb, .highlight .mx {
|
||||
color: #009999;
|
||||
}
|
||||
.highlight .sa {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .sb {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sc {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sd {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .s2 {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .se {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sh {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .si {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sx {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .sr {
|
||||
color: #009926;
|
||||
}
|
||||
.highlight .s1 {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .ss {
|
||||
color: #990073;
|
||||
}
|
||||
.highlight .s, .highlight .dl {
|
||||
color: #d14;
|
||||
}
|
||||
.highlight .na {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .bp {
|
||||
color: #999999;
|
||||
}
|
||||
.highlight .nb {
|
||||
color: #0086B3;
|
||||
}
|
||||
.highlight .nc {
|
||||
color: #445588;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .no {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .nd {
|
||||
color: #3c5d5d;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .ni {
|
||||
color: #800080;
|
||||
}
|
||||
.highlight .ne {
|
||||
color: #990000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .nf, .highlight .fm {
|
||||
color: #990000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .nl {
|
||||
color: #990000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .nn {
|
||||
color: #555555;
|
||||
}
|
||||
.highlight .nt {
|
||||
color: #000080;
|
||||
}
|
||||
.highlight .vc {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .vg {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .vi {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .nv, .highlight .vm {
|
||||
color: #008080;
|
||||
}
|
||||
.highlight .ow {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .o {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .w {
|
||||
color: #bbbbbb;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
/* rouge "base16.dark" code highlight */
|
||||
/* generated with: rougify style base16.dark | sed '/background-color: #151515/d' */
|
||||
.highlight, .highlight .w {
|
||||
color: #d0d0d0;
|
||||
}
|
||||
.highlight .err {
|
||||
color: #151515;
|
||||
background-color: #ac4142;
|
||||
}
|
||||
.highlight .c, .highlight .ch, .highlight .cd, .highlight .cm, .highlight .cpf, .highlight .c1, .highlight .cs {
|
||||
color: #505050;
|
||||
}
|
||||
.highlight .cp {
|
||||
color: #f4bf75;
|
||||
}
|
||||
.highlight .nt {
|
||||
color: #f4bf75;
|
||||
}
|
||||
.highlight .o, .highlight .ow {
|
||||
color: #d0d0d0;
|
||||
}
|
||||
.highlight .p, .highlight .pi {
|
||||
color: #d0d0d0;
|
||||
}
|
||||
.highlight .gi {
|
||||
color: #90a959;
|
||||
}
|
||||
.highlight .gd {
|
||||
color: #ac4142;
|
||||
}
|
||||
.highlight .gh {
|
||||
color: #6a9fb5;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .k, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kv {
|
||||
color: #aa759f;
|
||||
}
|
||||
.highlight .kc {
|
||||
color: #d28445;
|
||||
}
|
||||
.highlight .kt {
|
||||
color: #d28445;
|
||||
}
|
||||
.highlight .kd {
|
||||
color: #d28445;
|
||||
}
|
||||
.highlight .s, .highlight .sb, .highlight .sc, .highlight .dl, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .s1 {
|
||||
color: #90a959;
|
||||
}
|
||||
.highlight .sa {
|
||||
color: #aa759f;
|
||||
}
|
||||
.highlight .sr {
|
||||
color: #75b5aa;
|
||||
}
|
||||
.highlight .si {
|
||||
color: #8f5536;
|
||||
}
|
||||
.highlight .se {
|
||||
color: #8f5536;
|
||||
}
|
||||
.highlight .nn {
|
||||
color: #f4bf75;
|
||||
}
|
||||
.highlight .nc {
|
||||
color: #f4bf75;
|
||||
}
|
||||
.highlight .no {
|
||||
color: #f4bf75;
|
||||
}
|
||||
.highlight .na {
|
||||
color: #6a9fb5;
|
||||
}
|
||||
.highlight .m, .highlight .mb, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mx {
|
||||
color: #90a959;
|
||||
}
|
||||
.highlight .ss {
|
||||
color: #90a959;
|
||||
}
|
||||
}
|
||||
|
||||
/* Code Blocks */
|
||||
.highlighter-rouge {
|
||||
padding: 2px 1rem;
|
||||
border-radius: 5px;
|
||||
background-color: white;
|
||||
color: var(--sd-foreground-color);
|
||||
background-color: var(--sd-highlight-bg);
|
||||
|
||||
overflow: auto;
|
||||
}
|
||||
.highlighter-rouge * {
|
||||
background-color: white;
|
||||
.highlighter-rouge .highlight .err {
|
||||
background: transparent !important;
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
/* Inline Code */
|
||||
code.highlighter-rouge {
|
||||
padding: 2px 6px;
|
||||
background-color: rgba(0,0,0, 0.07);
|
||||
background-color: var(--sd-highlight-inline-bg);
|
||||
}
|
||||
|
||||
a code.highlighter-rouge {
|
||||
color: inherit;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user