systemd

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Systemd and the translation is 100% complete.

A systemd egy modern SysV stílusú init. Egy rc helyettesítő a Linux rendszerek számára. A Gentoo-ban támogatva van mint alternatív init rendszer.

Az init rendszer választása nem triviális művelet. A választásnak hatása van a rendszer beállítására, és néha arra is, hogy milyen szoftverek telepíthetőek vagy nem telepíthetőek. Általában egy init rendszert a telepítés során szoktunk kiválasztani (például egy systemd vagy egy openrc fokozat (stage3) tömörített fájl letöltésével), és csak nagyon szükség esetén cseréljük azt le a későbbiekben. Az igazi Gentoo stílusban a systemd és a OpenRC mellett több init rendszer is támogatott.

Ha a systemd nem kívánt módon kerül behúzásra függőségként, akkor tekintse meg a Gentoo a systemd nélkül leírást.

Telepítés

Important
Ha a sys-apps/systemd-203 verzióról vagy attól kisebb verzióról frissít, akkor tekintse meg a frissítési al-cikket.

A mag, amely köré minden disztribúció épül, az a Linux kernel. Ez a réteg a felhasználói programok és a rendszer hardvere között helyezkedik el. A Gentoo többféle kernel forrást biztosít a felhasználók számára. A teljes lista leírással megtalálható a Kernel áttekintési oldalon.

Az amd64 alapú rendszerekhez a Gentoo a sys-kernel/gentoo-sources szoftvercsomagot ajánlja.

Válasszon ki egy megfelelő kernel forrást, és telepítse azt az emerge használatával:

root #emerge --ask sys-kernel/gentoo-sources

Kernel

A systemd számos modern Linux kernel funkciót használ. Jelenleg az alsó határ a kernel verzióra az ebuild-ban 2.6.39-re van állítva. A sys-kernel/gentoo-sources legutóbbi verzióiban kényelmes módon lehet kiválasztani a kötelező és opcionális kernel opciókat a systemd-hez (további részletekért tekintse meg a Kernel/Beállítás oldalt).

KERNEL Gyors beállítás a gentoo-sources használatával
Gentoo Linux --->
   Support for init systems, system and service managers --->
      [*] systemd

A kernelopciók manuális beállításához (ami az egyetlen lehetőség, ha nem használja a sys-kernel/gentoo-sources szoftvercsomagot), a következő kernelbeállítási opciók szükségesek vagy ajánlottak:

KERNEL Kötelező opciók
General setup  --->
	[*] Control Group support --->
		[*]   Support for eBPF programs attached to cgroups
	[ ] Enable deprecated sysfs features to support old userspace tools
	[*] Configure standard kernel features (expert users)  --->
		[*] open by fhandle syscalls
		[*] Enable eventpoll support
		[*] Enable signalfd() system call
		[*] Enable timerfd() system call
	[*] Enable bpf() system call
[*] Networking support --->
	Networking options --->
		[*] Unix domain sockets
Device Drivers  --->
	Generic Driver Options  --->
		[*] Maintain a devtmpfs filesystem to mount at /dev
File systems  --->
	[*] Inotify support for userspace
	Pseudo filesystems  --->
		[*] /proc file system support
		[*] sysfs file system support
KERNEL Ajánlott opciók
General setup  --->
	[*] Namespaces support  --->
		[*] Network namespace
[*] Enable the block layer  --->
	[*] Block layer SG support v4
Processor type and features  --->
	[*] Enable seccomp to safely compute untrusted bytecode
Networking support --->
	Networking options --->
		<*> The IPv6 protocol
Device Drivers  --->
	Generic Driver Options  --->
		()  path to uevent helper
		[ ] Fallback user-helper invocation for firmware loading
	Firmware Drivers  --->
		[*] Export DMI identification via sysfs to userspace
File systems --->
	<*> Kernel automounter support (supports v3, v4 and v5)
	Pseudo filesystems --->
		[*] Tmpfs virtual memory file system support (former shm fs)
		[*]   Tmpfs POSIX Access Control Lists
		[*]   Tmpfs extended attributes

Egy UEFI operációs rendszerhez engedélyezze a következő beállításokat is.

KERNEL UEFI támogatás
[*] Enable the block layer  --->
	Partition Types  --->
		[*] Advanced partition selection
		[*]   EFI GUID Partition support
Processor type and features  --->
	[*] EFI runtime service support
Device Drivers  --->
        Firmware Drivers  --->
                EFI (Extensible Firmware Interface) Support -->
	                <*> EFI Variable Support via sysfs

Ha az operációs rendszer a BFQ ütemezőt használja, akkor a BFQ fejlesztői azt javasolják, hogy engedélyezze a hierarchikus ütemezés támogatását.

KERNEL BFQ ütemező
IO Schedulers  --->
	<*> BFQ I/O scheduler
        [*]   BFQ hierarchical scheduling support

Az aktuális lista megtekintéséhez nézze meg a "KÖVETELMÉNYEK" részt a fejlesztői (upstream) README fájlban.

Meggyőződés arról, hogy a /usr jelen van a bootoláskor

Egy megosztott /usr beállításhoz használjon egy initramfs fájlt az /usr felcsatolásának érdekében még a systemd indítása előtt. Jelenleg ez azt jelenti, hogy a sys-kernel/dracut vagy a sys-kernel/genkernel 4.1 vagy újabb verzióját használja. Szánjon most időt a migrálásra:

root #emerge --ask sys-kernel/genkernel

vagy

root #emerge --ask sys-kernel/dracut

Ha a dracut parancsot használja, akkor engedélyezze a usrmount modult, ha az nem lett automatikusan engedélyezve a /usr csatolásához.

FILE /etc/dracut.conf.d/usrmount.conf
# Dracut modules to add to the default
add_dracutmodules+=" usrmount "

Ha a genkernel parancsot használja, akkor a kernel újraépítése előtt győződjön meg róla, hogy beállította a /usr könyvtárat a genkernel /etc/initramfs.mounts beállítási fájljában. Ez a initramfs folyamat során felcsatolja a /usr könyvtárat.

FILE /etc/initramfs.mounts
/usr
root #genkernel --install all

Tekintse meg a Initramfs útmutatót a további alternatívákért.

LVM és initramfs használata esetén

Amikor LVM van használatban, és a rendszer initramfs fájl segítségével indul el, akkor az initramfs fájlt a sys-kernel/genkernel segítségével kell létrehozni a következő parancs futtatása által:

root #genkernel --lvm <target>

<target> lehet initramfs, vagy az egyik másik genkernel célpont, amely az initramfs létrehozását jelenti. További információkért nézze meg a genkernel --help parancs kimenetét:

user $genkernel --help

USE jelölőzászlók

USE flags for sys-apps/systemd System and service manager for Linux

+dns-over-tls Enable DNS-over-TLS support
+gcrypt Enable use of dev-libs/libgcrypt for various features
+kernel-install Enable kernel-install
+kmod Enable kernel module loading via sys-apps/kmod
+lz4 Enable lz4 compression for the journal
+openssl Enable use of dev-libs/openssl for various features
+resolvconf Install resolvconf symlink for systemd-resolve
+seccomp Enable seccomp (secure computing mode) to perform system call filtering at runtime to increase security of programs
+sysv-utils Install sysvinit compatibility symlinks and manpages for init, telinit, halt, poweroff, reboot, runlevel, and shutdown
+zstd Enable support for ZSTD compression
acl Add support for Access Control Lists
apparmor Enable support for the AppArmor application security system
audit Enable support for sys-process/audit
boot Enable EFI boot manager and stub loader
bpf Enable BPF support for sandboxing and firewalling.
cgroup-hybrid Default to hybrid (legacy) cgroup hierarchy instead of unified (modern).
cryptsetup Enable cryptsetup tools (includes unit generator for crypttab)
curl Enable support for uploading journals
elfutils Enable coredump stacktraces in the journal
fido2 Enable FIDO2 support
gnutls Prefer net-libs/gnutls as SSL/TLS provider (ineffective with USE=-ssl)
homed Enable portable home directories
http Enable embedded HTTP server in journald
idn Enable support for Internationalized Domain Names
importd Enable import daemon
iptables Use libiptc from net-firewall/iptables for NAT support in systemd-networkd; this is used only if the running kernel does not support nftables
lzma Support for LZMA compression algorithm
pam Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip
pcre Add support for Perl Compatible Regular Expressions
pkcs11 Enable PKCS#11 support for cryptsetup and homed
policykit Enable PolicyKit (polkit) authentication support
pwquality Enable password quality checking in homed
qrcode Enable qrcode output support in journal
secureboot Automatically sign efi executables using user specified key
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
split-usr Enable behavior to support maintaining /bin, /lib*, /sbin and /usr/sbin separately from /usr/bin and /usr/lib*
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
tpm Enable TPM support
ukify Enable systemd-ukify
vanilla Disable Gentoo-specific behavior and compatibility quirks
xkb Depend on x11-libs/libxkbcommon to allow logind to control the X11 keymap

Profile

Engedélyezze a systemd USE jelölőzászlót globálisan (a make.conf fájlban). Az elogind USE jelölőzászlót is le kell tiltani, hogy elkerüljük az ütközéseket a systemd-logind szolgáltatással. Lehetőség van továbbá egy systemd alprofilra váltani, annak érdekében, hogy megfelelőbb USE jelölőzászló alapértelmezéseket használjon. Ez esetben nem szükséges módosítani a make.conf fájlt.

root #eselect profile list

Végül frissítse a rendszert az új profillal:

root #emerge -avDN @world
Note
Miután ez a parancs befejeződött, fontos követni a Beállítás lépéseit.

Szoftverfüggőségi problémák

Amikor az OpenRC init rendszert systemd init rendszerre cseréli, számos függőségi probléma merülhet fel.

Ha a sys-apps/sysvinit blokkolja a sys-apps/systemd telepítését, próbálja meg letiltani a netifrc USE jelölőzászlót a sys-apps/openrc esetében. Ezután ideiglenesen építse újra az OpenRC init rendszert, hogy megszakítsa a függőséget a net-misc/netifrc szoftvercsomaggal, majd hajtson végre egy depclean műveletet:

root #emerge --oneshot sys-apps/openrc
root #emerge --ask --depclean

Ha a sys-apps/sysvinit még mindig blokkolja a sys-apps/systemd telepítését, akkor ellenőrizze, hogy a sys-apps/sysvinit és a sys-apps/openrc nincsenek benne a world fájlban:

root #emerge --deselect sys-apps/openrc sys-apps/sysvinit

Ha a sys-fs/udev blokkolja a sys-apps/systemd telepítését, előfordulhat, hogy a sys-fs/udev regisztrálva van a world fájlban. Próbálja meg megoldani ezt azzal, hogy eltávolítja a kijelölését:

root #emerge --deselect sys-fs/udev

A sys-apps/systemd tartalmazza az udev-et. A telepítést követően a sys-fs/udev eltávolítható, mivel a systemd lesz a virtual/udev követelmény szolgáltatója.

Ha a @system set tartalmazza a sys-fs/eudev szoftvercsomagot, akkor a virtual/udev és virtual/libudev akadályozhatják a systemd telepítését. A probléma megoldása érdekében, miután beállította a USE jelölőzászlót, próbálja meg újratelepíteni a virtuals szoftvercsomagokat:

root #emerge --oneshot virtual/udev virtual/libudev

Bootloader

Important
Ez már nem szükséges a sys-apps/systemd esetén, ha a sysv-utils USE jelölőzászló engedélyezve van. Ez alapértelmezés szerint be van kapcsolva legalább a systemd 239-es verzióban a Gentoo-n.

A systemd futtatásának érdekében váltson át a futtatható kernel (vagy az initramfs) által használt init-re.

Warning
A korábban beállított szolgáltatások nem fognak automatikusan elindulni az új szolgáltatáskezelő beállítása miatt. Ez azért van, mert az operációs rendszer másik szolgáltatáskezelőre vált. A hálózati és bejelentkezési menedzserhez hasonló funkciók visszanyeréséhez ezeket a szolgáltatásokat újra engedélyezni kell. További információk a cikk későbbi szolgáltatások részében találhatók.
Note
Ha a migráció hibás állapotot eredményez, akkor mindig lehetséges újból elindítani az alapértelmezett szolgáltatáskezelőt (OpenRC) az init módosítási lépés visszavonásával. Ez lehetővé teszi a biztonságos visszatérést és a probléma megoldását a cikk végén található hibakeresési rész követésével.

Az alábbi alfejezetek bemutatják, hogy miként lehet váltani az init-et az egyik boot manager-ben vagy a kernelben.

GRUB Legacy (0.x)

A init=/lib/systemd/systemd argumentumot hozzá kell adni a kernel parancssorához. Egy példakivonat a grub.conf fájlból így nézne ki:

FILE /boot/grub/grub.confPélda GRUB beállítás a systemd számára
title=Gentoo with systemd
root (hd0,0)
kernel /vmlinuz root=/dev/sda2 init=/lib/systemd/systemd

Ha az operációs rendszer OpenRC init rendszerrel indul, akkor próbálja meg a real_init-et használni az init helyett.

GRUB

Amikor a grub-mkconfig használatban van, adja hozzá az init opciót a GRUB_CMDLINE_LINUX változóhoz:

Note
Ez nem szükséges, ha egy dracut által generált initramfs fájlt használ, amelyben systemd található, mivel az initramfs fájl már önmagában elindítja a systemd init rendszert.
FILE /etc/default/grubGRUB beállítása a systemd számára
# Append parameters to the linux kernel command line
GRUB_CMDLINE_LINUX="init=/lib/systemd/systemd"

Amikor a GRUB beállító fájlját kézzel írjuk (csak szakértőknek ajánlott), akkor illesszük be az init= paramétert a linux vagy linux16 parancshoz.

FILE /boot/grub/grub.cfgPélda a GRUB2 beállításának egy kis töredékrészére
linux /vmlinuz-3.10.9 root=UUID=508868e4-54c6-4e6b-84b0-b3b28b1656b6 init=/lib/systemd/systemd

YABOOT

A Yaboot egy boot loader PowerPC-alapú hardverekhez, amely Linuxot futtat, különösen a New World ROM-mal rendelkező Macintosh rendszerekhez.

Az init=/lib/systemd/systemd argumentumot közvetlenül a kernel parancssora után kell hozzáadni. Egy példa a yaboot.conf fájlból:

FILE /etc/yaboot.confPélda yaboot beállítása a systemd számára
image=/vmlinux 
   append="init=/lib/systemd/systemd" 
   label=Linux 
   read-only 
   initrd=/initramfs 
   initrd-size=8192

Ahhoz, hogy a változtatások érvénybe lépjenek, a ybin parancsot minden alkalommal futtatnunk kell, amikor a yaboot.conf fájlt módosítjuk.

In-kernel beállítás

Az init beállítás szintén beépíthető a kernel beállításába. Tekintse meg a Processor type and features -> Built-in kernel command line részt. Megjegyezzük, hogy ez a technika mind a GRUB Legacy, mind a GRUB esetében működik.

Frissítések

A systemd képes önmagát frissíteni egy futó rendszeren (újraindítás nélkül). A systemd frissítésének a települése után futtassa a következő parancsot:

root #systemctl daemon-reexec

Beállítás

A systemd támogat néhány rendszerbeállítási fájlt az alapvető rendszeradatok beállításának érdekében.

A systemd telepítése után futtassa a következő parancsot:

root #systemd-machine-id-setup
root #systemd-firstboot --prompt
root #systemctl preset-all
Warning
Ha a systemd-firstboot nem kerül futtatásra, akkor az automatikusan lefut a következő rendszerindításkor. Azonban ez megszakítja a normál indítási folyamatot, megakadályozva a hozzáférést a rendszerhez azoknak a felhasználóknak, akik nem férnek hozzá az interaktív konzolhoz - például SSH-n keresztüli hozzáférés egy szerverhez.
Note
Míg egyes rendszerbeállítási paraméterek frissíthetőek a megfelelő beállítási fájlok módosításával, a legtöbb beállítást olyan segédprogramokkal szokták kezelni a felhasználók, amelyekhez szükséges a systemd futása. Ebben az esetben biztonságos újraindítani a számítógépet a systemd segítségével, és használni a hostnamectl, localectl, és timedatectl segédprogramokat – valójában szükség lehet ezekre a használatukhoz.

Számítógép azonosító (Machine ID)

Hozzon létre egy számítógép azonosítót a naplózás működésének érdekében. Ezt a következő paranccsal lehet megtenni:

root #systemd-machine-id-setup
Note
A systemd-machine-id-setup parancs hatással van a systemd-networkd szolgáltatásra is. Ha ez a parancs nincs lefuttatva, akkor az operációs rendszer furcsa viselkedést produkálhat. Például a hálózati interfészek nem indulnak el, vagy a hálózati címek nem kerülnek alkalmazásra.

Számítógép neve (Hostname)

A hostname beállításának érdekében hozza létre vagy szerkessze a /etc/hostname fájlt, és egyszerűen adja meg a kívánt hostnevet.

Abban az esetben, amikor a systemd segítségével indul a számítógép, létezik egy hostnamectl nevű eszköz a /etc/hostname és a /etc/machine-info szerkesztésére. A hostname megváltoztatásának érdekében futtassa:

root #hostnamectl set-hostname <HOSTNAME>

Tekintse meg a man hostnamectl súgót a további lehetőségekért.

Nyelvterület beállítása (Locale)

Általában a nyelvterület beállítások megfelelően migrálódnak az OpenRC init rendszerről, amikor a systemd init rendszert telepítik. Szükség esetén a nyelvterület beállítható a /etc/locale.conf fájlban a Gentoo kézikönyv utasításai szerint:

FILE /etc/locale.confRendszer nyelvterületének a beállítása
LANG="en_US.utf8"

Amint a számítógép az systemd rendszerrel indult el, a localectl segédeszköz használható a nyelvterület és a parancssor, illetve a X11 billentyűzetkiosztások beállítására. A rendszer nyelvterületi beállításának a megváltoztatásához futtassa a következő parancsot:

root #localectl set-locale LANG=<LOCALE>

A virtuális parancssor billentyűzetkiosztásának megváltoztatásához futtassa:

root #localectl set-keymap <KEYMAP>

Végül az X11 elrendezésének a beállításához futtassa:

root #localectl set-x11-keymap <LAYOUT>

Szükség esetén a modellt, a variánst és az opciót is megadhatjuk:

root #localectl set-x11-keymap <LAYOUT> <MODEL> <VARIANT> <OPTIONS>


Miután a fentiek bármelyikét elvégezte, frissítse a környezetet, hogy a változtatások érvénybe lépjenek:

root #env-update && source /etc/profile

Idő és a dátum

Az idő, dátum és időzóna beállítható a timedatectl segédprogrammal. Ez lehetővé teszi a felhasználók számára, hogy beállítsák a szinkronizálást anélkül, hogy a net-misc/ntp vagy más szolgáltatókra támaszkodnának a systemd saját megvalósításán kívül.

Ha Ön megszeretné tanulni a timedatectl használatát, akkor futtassa a következő parancsot:

root #timedatectl --help

Automatikus modulbetöltés

Az automatikus modulbetöltést egy másik fájlban, vagy inkább egy fájlkönyvtárban szoktás beállítani. A beállítási fájlok a /etc/modules-load.d könyvtárban vannak tárolva. Induláskor minden fájl, amely modulok listáját tartalmazza, be fog töltődni. A fájlformátum modulok listája, új sorokkal elválasztva, és bármilyen nevet viselhet, amíg .conf kiterjesztéssel végződik. A modul betöltés szétválasztható program, szolgáltatás vagy bármilyen más mód alapján, ami a személyes preferenciának megfelel. Az alábbiakban egy virtualbox.conf példa látható:

FILE /etc/modules-load.d/virtualbox.confPéldafájl a virtualbox moduljaihoz
vboxdrv
vboxnetflt
vboxnetadp
vboxpci

Automatikus partíciócsatolás a bootoláskor

A systemd képes különböző partíciókat automatikusan csatolni szabványosított helyekre a systemd-gpt-auto-generator segítségével. Ez lehetővé teszi az alapvető partíciók csatolását fstab és a kernel parancssori paramétereként megadott root= nélkül. Ennek a képességnek a használatához először is a systemd init rendszert be kell illeszteni az initramfs fájlba, ez alapértelmezett eset a systemd init rendszerrel telepített operációs rendszerekre Dracut által generált initramfs bináris képfájlok esetén. Másodszor, minden partíciónak rendelkeznie kell a megfelelő Partition Type GUID azonosítóval. A legfontosabb GUID azonosítók listája megtalálható a systemd-gpt-auto-generator kézikönyvében, a teljes lista pedig elérhető a wikipédián.

A jelenlegi partíciók Partition Type GUID azonosítóinak a kilistázásához futtassa a következő parancsot:

root #lsblk -o NAME,LABEL,PARTLABEL,PARTTYPE,PARTTYPENAME,MOUNTPOINT

A systemd-gpt-auto-generator automatikusan csatolhatja a partíciókat a következő helyeken, megjegyezve, hogy a megfelelő GUID az operációs rendszer processzorarchitektúrájától függ:

  • / SD_GPT_ROOT_....
  • /boot/ SD_GPT_ESP ha nincs /efi/ és nincs XBOOTLDR partíció, különben SD_GPT_XBOOTLDR.
  • /efi/ SD_GPT_ESP ha az /efi/ jelen van a root fájlrendszerben. Ha nem, akkor az ESP a /boot/ könyvtárban található.
  • /home/ SD_GPT_HOME
  • /srv/ SD_GPT_SRV
  • /usr/ SD_GPT_USR_....
  • /var/ SD_GPT_VAR
  • /var/tmp/ SD_GPT_TMP
  • Swap SD_GPT_SWAP

Az alábbiakban látható egy példa a legegyszerűbb partíciókiosztásra, amely egy EFI System Partition és egy x86-64 root partícióból áll.

root #lsblk -o NAME,LABEL,PARTLABEL,PARTTYPE,PARTTYPENAME,MOUNTPOINT
NAME        LABEL    PARTLABEL            PARTTYPE                             PARTTYPENAME                 MOUNTPOINT
nvme1n1
├─nvme1n1p1 ESP      EFI System Partition c12a7328-f81f-11d2-ba4b-00a0c93ec93b EFI System                   /boot
└─nvme1n1p2 Gentoo   Gentoo               4f68bce3-e8cd-4db1-96e7-fbcaf984b709 Linux root (x86-64)          /

Az EFI rendszerpartíció PARTTYPE azonosítója c12a7328-f81f-11d2-ba4b-00a0c93ec93b, amely vagy az /efi/ vagy a /boot/ könyvtárba lesz felcsatolva, attól függően, hogy ezek közül melyik csatolási pont érhető el, és van-e egy Extended Boot Loader Partition (PARTTYPE=bc13c2ff-59e6-4262-a352-b275fd6f7172) ezen az adathordozón. Az x86-64 root partíció PARTTYPE azonosítója 4f68bce3-e8cd-4db1-96e7-fbcaf984b709.

Ha a Partition Type GUID nem megfelelő, akkor adatvesztés nélkül megváltoztatható egy partíciókezelő eszközzel, például a fdisk segítségével. Vegye figyelembe, hogy az operációs rendszernek offline állapotban kell lennie a partíciótípusok megváltoztatásához! Egy rendszermentő képfájl vagy egy másodlagos operációs rendszer használata szükséges a következő lépések végrehajtásához.

Nyissa meg a módosítandó partíció típusokat tartalmazó lemezt az fdisk programmal, ebben a példában a /dev/nvme1n1 kerül felhasználásra:

root #fdisk /dev/nvme1n1
 
Welcome to fdisk (util-linux 2.39.3).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
 
Command (m for help):

A jelenlegi partíciókiosztás listázásához használja a p parancsot:

Command (m for help): p
 
Disk /dev/nvme1n1: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: Samsung SSD 970 EVO Plus 2TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B25D5B33-4A10-F940-826C-3CB24ADC7D86
 
Device           Start        End    Sectors  Size Type
/dev/nvme1n1p1    2048    1052671    1050624  513M EFI System
/dev/nvme1n1p2 1052672 3907028991 3905976320  1.8T Linux root (x86-64)

A partíció Partition Type GUID azonosítójának megváltoztatásához a t parancsot használja, majd adja meg a módosítandó partíció számát és a kívánt partíciótípus aliaszát:

Command (m for help): t
Partition number (1,2, default 2): 2
Partition type or alias (type L to list all): L
Partition type or alias (type L to list all): 23
 
Changed type of partition 'Linux root (x86-64)' to 'Linux root (x86-64)'.

Ismételje meg a fenti lépéseket minden további partíciónál, amelynek a Partition Type GUID azonosítóját meg kell változtatni. A műveletek befejezése után mentse el a változtatásokat a w paranccsal.

Command (m for help): w
Note
systemd-gpt-auto-generator csak azokat a partíciókat fogja automatikusan csatolni, amelyek ugyanazon az adattárolón helyezkednek el, mint az EFI System Partition, amelyből az operációs rendszer indult.
Tip
Néhány segédeszköz zavart okozhat, ha nincs root= paraméter a kernel parancssorában. Az ilyen segédeszközök megnyugtatásának érdekében adja hozzá a root=/dev/gpt-auto-root paramétert a kernel parancssorához. Ez a trükk akkor is hasznos, ha a gyökérpartíción található swap fájl helyett swap partíciót használ a hibernációhoz. Például megadhatja a visszaállítási célpontot a kernel parancssorában a következő módon: resume=/dev/gpt-auto-root resume_offset=xxxxxxxxx.

Hálózat

A systemd különféle hálózatkezelő eszközökkel kompatibilis.

systemd-networkd

A részletekért a vezetékes hálózat beállításáról systemd rendszerek esetében, tekintse meg a systemd/systemd-networkd cikket.

systemd-resolved

A címfeloldási szolgáltatás (DNS) beállításának részleteiért a systemd rendszereken, tekintse meg a systemd/systemd-resolved cikket.

NetworkManager

A számítógép felhasználók a hálózati beállításokhoz gyakran használják a NetworkManager szoftvert. Ehhez egyszerűen futtassa az alábbi parancsot, amikor grafikus asztali környezetet használ:

root #nm-connection-editor

Ha a grafikus felületen keresztüli beállítás nem lehetséges, és a hálózatot parancssorból kell beállítani, akkor próbálkozzon a nmcli paranccsal, vagy kövesse a lépésről-lépésre történő beállítási folyamatot a nmtui segítségével:

root #nmtui

A nmtui egy curses frontend, amely végigvezeti a felhasználót a folyamaton, miközben konzol módban fut.

Fordítói megjegyzés: A "curses frontend" egy grafikus felhasználói interfész (GUI) könyvtár, amelyet parancssor alapú alkalmazások fejlesztéséhez használnak. Lehetővé teszi a fejlesztők számára, hogy karakter-alapú, interaktív interfészeket hozzanak létre parancssori környezetben. Eredetileg Unix rendszerekhez fejlesztették ki, de manapság számos különböző platformon elérhető és használható.

A további részletekért tekintse meg a dedikált cikket.

Naplófájlok kezelése

A systemd saját módszerrel kezeli a naplófájlokat anélkül, hogy külső naplórendszerre (például app-admin/syslog-ng vagy app-admin/rsyslog) lenne szükség.

Ha szükséges, akkor a naplószolgáltatás beállítható úgy, hogy a naplóüzeneteket külső naplózási segédprogramokra, például a sysklog vagy a syslog-ng rendszerre továbbítsa. A systemd-journald szolgáltatás beállításának módjáról az adott helyzethez igazodva Ön a man journald.conf súgójában található információk alapján tájékozódhat.

A systemd beépített naplószolgáltatása biztonságos, bináris formátumban írja a naplóüzeneteket. A naplókat a journalctl parancs segítségével lehet olvasni, amely egy különálló végrehajtható fájl a systemd-journald naplószolgáltatástól.

Important
Ha a systemd-journald.service naplószolgáltatást használja naplózásra, ami általában az alapértelmezett a systemd-t futtató rendszereken, akkor a journalctl parancsot futtató szokványos felhasználók nem tudják megtekinteni a rendszer naplóit. Ahhoz, hogy a rendszer naplóit nem root fiókból nézhesse meg, a felhasználóknak az alábbi három felhasználói csoport valamelyikébe kell tartozniuk, hogy megtekinthessék a rendszer naplóit: systemd-journal, adm, vagy wheel. A legegyszerűbb módszer arra, hogy egy szokványos felhasználó megtekinthesse a naplókat, az a systemd-journal csoport használata. Egy felhasználó hozzáadása a következő parancs segítségével történik, ahol larry a kívánt felhasználónév:

root #gpasswd --add larry systemd-journal
A rendszernaplók mostantól a következő parancs futtatásával olvashatóak, az előző parancsban hozzáadott felhasználó(k) számára: journalctl --system.

Néhány általánosan használt journalctl opció:

Parancssori opciók a journalctl számára Eredmény
A journalctl parancs futtatása további opciók nélkül Az összes naplóbejegyzés megjelenítése, a legkorábbiaktól kezdődően.
-b, --boot Az aktuális boot folyamat naplóbejegyzéseinek a megjelenítése.
-r, --reverse A legújabb naplóbejegyzések megjelenítése először (fordított időrendi sorrend).
-f, --follow A legutóbbi bejegyzések megjelenítése és az új naplóbejegyzések folyamatos megjelenítése, amint azok létrejönnek. Ez hasonló a szöveges naplózási segédprogramokban futtatott tail -f parancshoz.
-p, --priority= Megadja a megjelenítendő üzenetek (minimális) prioritását. Választható értékekkel: "emerg" (0), "alert" (1), "crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7).
-S, --since=, -U, --until= Korlátozza a bejegyzéseket idő szerint. Elfogadott formátumok: "YYYY-MM-DD hh:mm:ss" vagy a következő kifejezések: "yesterday" (tegnap), "today" (ma) és "tomorrow" (holnap).
-n, --lines= Korlátozza a bejegyzések számát.
-k, --dmesg Korlátozás a kernelüzenetekre.
-u, --unit= Korlátozás egy bizonyos systemd unit-ra.
--system Rendszerszolgáltatások és kernelnaplók megtekintése. Alapértelmezés szerint ez csak root felhasználóként lehetséges. A szokványos felhasználók számára az operációs rendszer naplóinak olvasására vonatkozó jogosultság megadásának módját tekintse meg a man journalctl súgójában.

További információkért és további opciókért tekintse meg a man journalctl súgót.

/tmp könyvtár mostantól a tmpfs

Hacsak nincs valamilyen más fájlrendszer csatolva a /tmp könyvtárhoz a /etc/fstab fájlban, akkor a systemd tmpfs-ként fogja felcsatolni a /tmp könyvtárat. Ez azt jelenti, hogy minden indításkor kiürül, és a mérete a rendszer RAM méretének 50%-ára lesz korlátozva. Annak érdekében, hogy megtudja, vajon miért ez a kívánt viselkedés, és hogyan lehet ezt módosítani, kérjük, hogy tekintse meg a API File Systems leírást.

A boot folyamat bőbeszédűségének a beállítása

Amikor a felhasználók áttérnek a systemd init rendszerre, általában különbségeket észlelnek a boot folyamat részletességében:

  • A quiet kernel parancssori opció nemcsak a kernel kimenetét, hanem magát a systemd init rendszert is befolyásolja. Ezért a systemd init rendszert beállítása során érdemes elhagyni ezt az opciót, hogy könnyebben láthatók legyenek az esetleges hibák. Ezt követően visszaállítható, hogy egy csendesebb (és gyorsabb) indítást érjünk el.
  • Még ha a quiet kernel parancssori opciót alkalmazzuk is, a systemd továbbra is beállítható úgy, hogy megjelenítse a státuszát a systemd.show_status=1 parancssori opcióval.
  • Ha nem használjuk a quiet kernel parancssori opciót, akkor néhány üzenet felülírhatja a parancssorokat. Ezt a kernel beállítása okozhatja (tekintse meg a man 5 proc súgóját és keresse meg benne a /proc/sys/kernel/printk fájlt). Ennek finomhangolásához adja meg a loglevel=5 kernel parancssori paramétert (és módosítsa az értéket az igényeknek megfelelően, például állítson be egy alacsonyabb értéket, mint az 1).

Használat

Hagyományos home könyvtárak átalakítása systemd homed könyvtárakra

Tekintse meg a systemd-homed alfejezetet.

Szolgáltatások

Az operációs rendszer egy bizonyos ponton újraindítást igényel azért, hogy a systemd fusson (rendszermódban). Ügyeljen arra, hogy az újraindítás előtt elolvassa ezt a dokumentumot, és győződjön meg arról, hogy a systemd a lehető legteljesebben be van állítva. Vegye figyelembe, hogy a journalctl a systemd futtatása nélkül is működik, de a systemctl nem fog semmi hasznosat tenni a systemd futtatása nélkül. A szolgáltatás beállításának (szolgáltatások engedélyezése és indítása) befejezése után jelentkezzen be a systemd init rendszert futtató operációs rendszerbe.

Már előre beállított szolgáltatások

A legtöbb szolgáltatás le van tiltva, amikor a systemd először telepítésre kerül. Egy "preset" fájl van biztosítva, amely segítségével engedélyezhetők az alapértelmezett szolgáltatások észszerű készlete.

root #systemctl preset-all

OpenRC szolgáltatások

Noha a systemd eredetileg támogatta a régi init.d szkriptek futtatását, ez a támogatás nem megfelelő egy függőségalapú RC, például az OpenRC esetében, így a Gentoo operációs rendszeren teljesen le van tiltva. Az OpenRC további intézkedéseket tesz annak érdekében, hogy az init.d szkriptek ne futhassanak, ha az operációs rendszer nem az OpenRC init rendszerrel lett elindítva (különben az eredmények kiszámíthatatlanok lennének).

Elérhető szolgáltatások listázása

Az elérhető szolgáltatás unitokat a systemctl list-units argumentumával lehet listázni:

root #systemctl list-units
UNIT                               LOAD   ACTIVE SUB       DESCRIPTION
boot.automount                     loaded active waiting   EFI System Partition Automount
proc-sys-fs-binfmt_misc.automount  loaded active waiting   Arbitrary Executable File Formats File System Automount Point
...

A következő fájlkiterjesztések az érdekesek:

Utótag Leírás
.service Egyszerű szolgáltatásfájlok. (Például közvetlenül egy szolgáltatás futtatása).
.socket Socket figyelők. (Hasonló az inetd-hez).
.path Fájlrendszer-triggerek a szolgáltatásokhoz. (Szolgáltatások futtatása fájlok változásakor stb.).

Alternatívaként a systemctl eszköz használható az összes szolgáltatás (beleértve az implicit szolgáltatásokat is) listázására:

root #systemctl --all --full

Végül ellenőrizze azokat a szolgáltatásokat, amelyek nem indultak el:

root #systemctl --failed

Szolgáltatások engedélyezése, letiltása, elindítása és leállítása

A szolgáltatás engedélyezésének szokásos módja a következő parancs használata:

root #systemctl enable foo.service

A szolgáltatások hasonló módon tilthatók le:

root #systemctl disable foo.service

Ezek a parancsok a szolgáltatásokat alapértelmezett nevükkel, az alapértelmezett célban engedélyezik (mindkettő a szolgáltatás fájl "Telepítés" szekciójában van megadva). Azonban néha a szolgáltatások nem adnak meg ilyen információt, vagy a felhasználók inkább egy másik nevet/célt szeretnének használni.

Megjegyzendő, hogy ezek a parancsok a operációs rendszerünk következő indításánál történő szolgáltatás elindítására vagy letiltására szolgálnak. Ha a szolgáltatást most azonnal el akarjuk indítani, akkor használjuk a következő parancsot:

root #systemctl start foo.service

A szolgáltatások hasonló módon állíthatóak le most azonnal:

root #systemctl stop foo.service

A ExecReload= lehetőséget megvalósító szolgáltatások parancsot kaphatnak a beállításuk újratöltésére anélkül, hogy újraindítanák magukat:

root #systemctl reload foo.service

Egyéni unit fájlok telepítése

Egyéni unit fájlokat a /etc/systemd/system könyvtárba lehet helyezni, ahol felismerésre kerülnek a systemctl daemon-reload futtatása után:

root #systemctl daemon-reload

A /lib/systemd/system könyvtár a szoftvercsomag-kezelő által telepített szolgáltatásfájlok számára van fenntartva.

Az unit fájlok testreszabása

Amikor csak kisebb változtatásokra vagy felülírásokra van szükség egy unit esetében, akkor nem szükséges az eredeti unit fájlt teljes egészében lemásolni a /etc/systemd/system/ vagy /lib/systemd/system/ könyvtárba. A szoftvercsomag-kezelő által biztosított unit beállításainak felülírása elérhető úgynevezett drop-in fájlokkal, amelyek az eredeti unit-ról elnevezett *.d könyvtárban találhatók meg. (Például apache2.service.d) a /etc/systemd/system/ könyvtárban van.

A drop-in könyvtár és a beállítási fájl egyaránt létrehozható a systemctl edit segédprogram segítségével vagy manuálisan.

A szerkesztő segédprogramot a következő módon lehet meghívni:

root #systemctl edit apache2.service
FILE /etc/systemd/system/apache2.service.d/mem-limit.confPélda a beállítások hozzáadására/felülírására egy szolgáltatás fájlban
[Service]
MemoryLimit=1G

A systemd újbóli betöltése szükséges ahhoz, hogy ő maga tájékoztatva legyen a változásokról:

root #systemctl daemon-reload

Ezt követően a szolgáltatást újra kell indítani a változtatások alkalmazásának az érdekében:

root #systemctl restart apache2

Ellenőrizze, hogy az módosított tulajdonság alkalmazva lett-e a szolgáltatásban:

root #systemctl show --property=MemoryLimit apache2
MemoryLimit=1074000000
Note
A drop-in fájlok hozzáadják az eredeti unit-ból származó elemeket a lista bejegyzésekhez (például ExecStart=). Az elemek eltávolításának érdekében először ki kell üríteni a listabejegyzést, majd hozzá kell adni a kívánt elemeket. Például:
FILE /etc/systemd/system/foo.service.d/override.confExecStart= bejegyzés készítése a drop-in fájlban
[Service]
ExecStart=
ExecStart=/usr/bin/bar

}}

Egy szolgáltatás engedélyezése egyéni név alatt

Amikor az unit [Install] szekciójában megadott Alias= név nem felel meg az elvárásoknak, és nem kívánjuk véglegesen megadni az új értéket egy testreszabással, akkor létrehozhatunk kézzel egy szimbolikus linket a /etc/systemd/system/.wants/ könyvtárban. A .wants könyvtár neve vagy egy célt, vagy egy másik szolgáltatást adhat meg, amely az új szolgáltatástól függ majd.

Például a mysqld.service telepítése érdekében db.service néven a multi-user.target-ben:

root #ln -s /lib/systemd/system/mysqld.service /etc/systemd/system/multi-user.target.wants/db.service

A szolgáltatás letiltásának az érdekében, egyszerűen távolítsa el a szimbolikus linket:

root #unlink /etc/systemd/system/multi-user.target.wants/db.service

Natív szolgáltatások

A Gentoo szoftvercsomagok némelyike már telepíti a systemd unit fájlokat. Ezekhez a szolgáltatásokhoz elegendő az engedélyezésük. Az unit fájlokat telepítő szoftvercsomagok gyors összefoglalója megtekinthető a systemd eclass felhasználói listán.

Az alábbi táblázat azokat a systemd szolgáltatásokat sorolja fel, amelyek megfelelnek az OpenRC szolgáltatásoknak:

Szolgáltatások migrációs táblázata
Gentoo szoftvercsomag OpenRC szolgáltatás systemd unit Megjegyzés
sys-apps/openrc bootmisc systemd-tmpfiles-setup.service Mindig engedélyezve van, a tmpfiles.d használja.
consolefont systemd-vconsole-setup.service Mindig engedélyezve van, a vconsole.conf használja.
devfs
dmesg
fsck fsck*.service Implicit módon van betöltve a csatolások által.
functions.sh Tekintse meg a megjegyzést. Hiba bug #373219 .
hostname (builtin) /etc/hostname
hwclock See note A systemd részeként mindig engedélyezve van. ( Például be van építve, és nem unit-ként van jelen).
keymaps systemd-vconsole-setup.service Mindig engedélyezve van. A vconsole.conf használja.
killprocs
local
localmount local-fs.target Az aktuális unit-ok implicit módon kerülnek létrehozásra az /etc/fstab alapján.
modules systemd-modules-load.service Mindig engedélyezve van. Az /etc/modules-load.d/*.conf használja.
mount-ro
mtab
netmount remote-fs.target
numlock
procfs (builtin)
root remount-rootfs.service
savecache n/a OpenRC internals
staticroute
swap swap.target Az aktuális unit-ok implicit módon kerülnek létrehozásra a /etc/fstab alapján.
swclock
sysctl systemd-sysctl.service sysctl.conf és sysctl.d/
sysfs (builtin)
termencoding systemd-vconsole-setup.service Mindig engedélyezve van. A vconsole.conf használja.
urandom systemd-random-seed-load.service
systemd-random-seed-save.service
app-admin/rsyslog rsyslog rsyslog.service
app-admin/syslog-ng syslog-ng syslog-ng.service
media-sound/alsa-utils alsasound alsa-store.service Alapértelmezés szerint engedélyezve van.
alsa-restore.socket Alapértelmezés szerint engedélyezve van.
net-misc/dhcpcd dhcpcd dhcpcd.service
net-misc/netifrc net.* net@.service Egy systemd wrapper a net.* szkriptekhez. (A net-misc/netifrc szoftvercsomag része).
netctl@.service A net-misc/netctl eredetileg egy Arch Linux eszköz.
NetworkManager.service A networkmanager-0.9.8.4 és annak korábbi verziói esetén: Engedélyezze a NetworkManager-dispatcher.service szolgáltatást, hogy működjenek a dispatcher.d szkriptek.
Engedélyezze a NetworkManager-wait-online.service szolgáltatást annak észleléséhez, hogy a rendszernek van-e működő internetkapcsolata.
Tiltson le minden más menedzsert (pl. wicd, dhcpcd) és a wpa_supplicant alkalmazást.
dhcpcd.service Biztosítja a net-misc/dhcpcd szoftvercsomag.
systemd.networkd.service A systemd része.
net-misc/openntpd ntpd ntpd.service
net-misc/openssh sshd sshd.service Szolgáltatásként futtatja az sshd programot.
sshd.socket Az sshd inetd-szerű módon fut. (Minden bejövő kapcsolat esetén).
net-wireless/wpa_supplicant wpa-supplicant wpa_supplicant.service D-Bus által vezérelt szolgáltatás. (Például a NetworkManager számára).
wpa_supplicant@.service Interfész specifikus wpa_supplicant. (Úgy van használva mint a wpa_supplicant@wlan0.service).
net-print/cups cupsd cups.service Klasszikus, bootoláskori szolgáltatás.
cups.socket Socket és path aktiválás. (A cups csak igény szerint indul).
cups.path
net-wireless/bluez bluetooth bluetooth.service
sys-apps/dbus dbus dbus.service
dbus.socket
sys-apps/irqbalance irqbalance irqbalance.service Kizárólag a szolgáltatásmódot támogatja.
sys-apps/microcode-ctl microcode_ctl A mikrokódot modulként állítja be, hogy maga töltse be a mikrokódot. Menjen a "Processor type and features" -> "CPU microcode loading support" menüpontra, és ne felejtse el hozzáadni a megfelelő opciót az Intel vagy AMD processzor alapján.
sys-fs/udev udev udev.service
udev-mount (builtin) /dev is mounted as tmpfs
udev-postmount udev-trigger.service
udev-settle.service
sys-power/acpid acpid acpid.service Ennek a funkcionalitásnak a nagy részét maga a systemd végzi el, így érdemes megfontolni ennek letiltását.
x11-apps/xdm (xdm) xdm.service Az OpenRC a közös xdm init.d-t használja, amelyet a x11-base/xorg-server telepít. A systemd esetében az egyes DM-ekhez (gdm.service, kdm.service stb.) tartozó egységfájlt engedélyezni kell.
net-firewall/iptables iptables iptables-store.service
iptables-restore.service

Felhasználók szolgáltatásai

Lehetséges a szolgáltatások kezelése felhasználónkénti systemd példányként. Ez lehetővé teszi a felhasználók számára, hogy saját szolgáltatásaikat vagy időzítőiket állítsák be.

A felhasználói unit-ok több helyen is elhelyezhetőek. A felhasználók elhelyezhetik őket a $XDG_CONFIG_HOME/systemd/user/ könyvtárba. A telepített szoftvercsomagok a /usr/lib/systemd/user/ könyvtárba helyezik őket.

A felhasználói szolgáltatások a --user systemctl opciót használják. Például egy mpd felhasználói szolgáltatás indításához:

user $systemctl --user start mpd

A timer szolgáltatások

A 197-es verzió óta a systemd támogatja az időzítőket (timers), így a cron program feleslegessé válik egy systemd rendszeren. A 212-es verzió óta a tartós szolgáltatások is támogatottak, ami még az anacron programot is helyettesíti. A tartós időzítők a következő alkalommal futnak, ha a rendszer ki volt kapcsolva, amikor az időzítőnek futnia kellett volna.

Az alábbiakban látható egy példa arra, hogy miként lehet egy egyszerű időzítőt létrehozni, amely egy felhasználó kontextusában fut. Akkor is futni fog, ha a felhasználó nincs bejelentkezve. Minden időzített szolgáltatásnak szüksége van egy időzítőre és egy szolgáltatási unit fájlra, amelyet az időzítő aktivál az alábbiak szerint:

FILE ~/.config/systemd/user/backup-work.timerPélda egy időzítőre (timer-re), amely minden munkanapon fut.
[Unit]
Description=daily backup work
RefuseManualStart=no
RefuseManualStop=no
 
[Timer]
Persistent=false
OnCalendar=Mon-Fri *-*-* 11:30:00
Unit=backup-work.service
 
[Install]
WantedBy=default.target
FILE ~/.config/systemd/user/backup-work.servicePélda egy szolgáltatásra, amely elindít egy biztonsági mentést
[Unit]
Description=daily backup work
RefuseManualStart=no
RefuseManualStop=yes
 
[Service]
Type=oneshot
ExecStart=/home/<user>/scripts/backup-work.sh

Ezeket az unit fájlokat manuálisan vagy a systemctl edit segédprogramal lehet létrehozni.

user $systemctl edit --force --full --user backup-work.timer

Amikor Ön az unit fájlokat manuálisan hozza létre, a fájlokat a ~/.config/systemd/user könyvtárba kell helyezni. Ezt létre kell hozni a megfelelő felhasználó számára:

user $mkdir -p ~/.config/systemd/user

Annak érdekében, hogy egy időzítő akkor is fusson, ha a felhasználó nincs bejelentkezve, győződjön meg róla, hogy az elhúzódó munkamenetek (lingering sessions) engedélyezve vannak.

user $loginctl enable-linger <felhasználónév>

Először mondja meg a systemd-nek, hogy olvassa újra a szolgáltatásfájlokat:

user $systemctl --user daemon-reload

Felhasználóként lehetőség van a biztonsági mentést manuálisan elindítani az alábbi parancs futtatásával:

user $systemctl --user start backup-work.service

Az időzítőt el lehet manuálisan indítani és le lehet állítani az alábbi módon:

user $systemctl --user start backup-work.timer
user $systemctl --user stop backup-work.timer

Végül az időzítő minden rendszerindításkor történő aktiválódásának az érdekében futtassa a következő parancsot:

user $systemctl --user enable backup-work.timer

Az utolsó szolgáltatásfuttatással kapcsolatos eredmények ellenőrzésének érdekében futtassa a következő parancsot:

user $systemctl --user list-timers

Hibák email-ben történő elküldése

Ha egy időzített szolgáltatás fut és hibát jelez, akkor e-mailben értesítheti a felhasználót vagy a rendszergazdát. Ez az "OnFailure" szakasz segítségével lehetséges, amely meghatározza, mi történjen, ha egy szolgáltatás hibát jelez. A hibát az idézett szkript nem nulla visszatérési kódja észleli.

Ehhez módosítsa a szkriptet az alábbiak szerint:

FILE ~/.config/systemd/user/backup-work.servicePélda egy szolgáltatásra, amely biztonsági mentést indít el
[Unit]
Description=daily backup work
RefuseManualStart=no
RefuseManualStop=yes
OnFailure=failure-email@%i.service
 
[Service]
Type=oneshot
ExecStart=/home/<user>/scripts/backup-work.sh

Ez megköveteli, hogy a failure-email@.service szolgáltatás telepítve legyen, amely a következő helyen található: kylemanna systemd-utils szoftvercsomag-tárolója.

A cron kicserélése

A fenti időzítő és szolgáltatásfájlok hozzáadhatóak a /lib/systemd/system könyvtárhoz is annak érdekében, hogy rendszerszintűen legyenek elérhetőek. Az telepítés szakaszban ennek kell szerepelnie: WantedBy=multi-user.target, hogy a szolgáltatás rendszerindításkor aktiválódjon.

A cron a /etc/cron.daily és más helyeken lévő szkripteket is futtatja. Számos szoftvercsomag helyez el itt szkripteket, amelyek futtatását naponta várják el. Ez a viselkedés emulálható systemd segítségével, ha telepíti a sys-process/systemd-cron szoftvercsomagot. Ezután aktiválja az új cron helyettesítőt az alábbi parancsokkal:

root #systemctl enable cron.target
root #systemctl start cron.target

Hibaelhárítás

Lassú leállások vagy újraindítási idők a futó szolgáltatások miatt

Probléma
Időnként egy systemd operációs rendszer vagy felhasználói szolgáltatás jelentősen késleltetheti magának az operációs rendszernek a leállítását/újraindítását a systemd alapértelmezett várakozási ideje miatt, amíg a műveletet blokkoló szolgáltatás időtúllépést nem ér el.
Megoldás
A művelet jelentős felgyorsítása érdekében az alapértelmezett időtúllépési értékek csökkenthetők, ami azzal a kockázattal jár, hogy a szolgáltatás (esetleg) nem fejezi be tisztán a feladatot. Ahhoz, hogy hatékony legyen, mindkét alábbi beállítási változtatást érvénybe kell léptetni az alapértelmezett időtúllépési rendszer és felhasználói szolgáltatások lerövidítésére.
FILE /etc/systemd/system.conf.d/system.confAlapértelmezett időtúllépési érték csökkentése 10 másodpercre a megakadt rendszerszolgáltatások esetében.
[Manager]
DefaultTimeoutStopSec=10s
FILE ~/.config/systemd/user.confAlapértelmezett időtúllépési érték csökkentése 10 másodpercre a megakadt felhasználói szolgáltatások esetében.
[Manager]
DefaultTimeoutStopSec=10s

/dev/kmsg puffertúlcsordulás, néhány üzenet elveszett

Probléma
Az operációs rendszer indításakor végtelen hurokban jelenik meg a /dev/kmsg buffer overrun, some messages lost üzenet. A parancssor bejelentkezési képernyője soha nem jelenik meg, mivel az operációs rendszer soha nem jut el erre a pontra a számítógép indítási folyamatban.
Megoldás
Az esetek többségében ezt a problémát az okozza, ha a CONFIG_POWER_SUPPLY_DEBUG opció engedélyezve van a kernelben. A jelenlegi megoldás az, hogy ezt az opciót letiltjuk a kernelben, majd újrafordítjuk, telepítjük és újraindítjuk az új kernelt. A megoldás megtalálható ebben a fórumbejegyzésben is a Gentoo fórumokon. Az egyik felhasználó szerint ez a probléma akkor is előfordult, amikor I2C EEPROM-ot használt egy beágyazott rendszerben[1]. Ebben az esetben a megoldás az volt, hogy letiltotta a CONFIG_I2C_DEBUG_CORE kernelopciót.

Véletlenszerű helyeken megnyíló grafikus munkamenetek

Alapértelmezés szerint a systemd csak akkor indít el egy getty folyamatot, ha azt használni fogják. Ez néhány megjelenítő kezelőprogramot (mint például a GDM-et) arra késztet, hogy a fennmaradó TTY-ket használja grafikus munkamenetek megnyitására igény szerint, ami konzolok és grafikus munkamenetek véletlenszerű elhelyezését eredményezheti attól függően, hogy milyen sorrendben használták őket.

A "klasszikusabb" viselkedés megőrzése érdekében (azaz a parancssorok elhelyezése tty1-tól tty6-ig, és a grafikus munkamenetek a fennmaradó TTY-k használatával) kényszerítse azt, hogy mindig indítson getty-t ezeken:

root #systemctl enable getty@tty{2,3,4,5,6}.service

LVM

Amikor az OpenRC-ről systemd-re vált, és az LVM szükséges a rendszerkötetek megfelelő csatolásához, akkor aktiválja az LVM szolgáltatást:

root #systemctl enable lvm2-monitor.service

Bár a gyökérkötet aktiválásához nem feltétlenül szükséges (ha az LVM integrálva van az initramfs-be), előfordulhat, hogy más LVM kötetek esetében nem fog működni, hacsak a szolgáltatás nincs aktiválva.

systemd-bootchart

Győződjön meg arról, hogy a CONFIG_DEBUG_KERNEL, CONFIG_SCHED_DEBUG és CONFIG_SCHEDSTATS engedélyezve vannak.

KERNEL A systemd-bootchart támogatás engedélyezése
File systems  --->
	Pseudo filesystems --->
	[*] /proc file system support
Kernel hacking  --->
	[*] Kernel debugging
	[*] Collect scheduler debugging info
	[*] Collect scheduler statistics

Ezt követően engedélyezze a systemd-bootchart.service szolgáltatást:

root #systemctl enable systemd-bootchart

A módosítások eredményeként minden indítás után egy SVG formátumú bootchart jelentés keletkezik a /run/log/ könyvtárban. Ez modern webböngésző segítségével megtekinthető.

A systemd-bootchart alternatívájaként a szolgáltatások indítása a következőkkel jeleníthető meg:

root #systemd-analyze plot > plot.svg

syslog-ng forrás systemd-hez

Nincs szükség arra, hogy a unix-dgram('/dev/log'); hozzáadjuk az /etc/syslog-ng/syslog-ng.conf beállítási fájlhoz. Ez a syslog-ng hibáját okozza (legalábbis a syslog-ng-3.7.2 verzió esetén). Frissítse a source src { ...; }; sort a syslog-ng cikk szerint az alábbiakra:

FILE /etc/syslog-ng/syslog-ng.conf
# default config for openrc
#source src { system(); internal(); };
 
# systemd
source src { systemd-journal(); internal(); };

sys-fs/cryptsetup beállítása

Úgy tűnik, a systemd nem tartja tiszteletben az /etc/conf.d/dmcrypt fájlt (tekintse meg a bug #429966 hibát), ezért ezt az /etc/crypttab fájlon keresztül kell beállítani:

FILE /etc/crypttabBeállítási fájl a titkosított adathordozó blokkeszközök számára
crypt-home UUID=c25dd0f3-ecdd-420e-99a8-0ff2eaf3f391 -

Győződjön meg arról, hogy a cryptsetup USE jelölőzászló engedélyezve van a sys-apps/systemd szoftvercsomag számára. Ez telepíti a /lib/systemd/system-generators/systemd-cryptsetup-generator fájlt, amely automatikusan létrehoz egy szolgáltatást (például cryptsetup@crypt-home.service) minden bejegyzéshez az indítás során.

A nem elindult unit-ok ellenőrzése

Ellenőrizze a nem induló unit-okat a következő paranccsal:

root #systemctl --failed

Hibakereső mód engedélyezése

További információk megszerzéséhez állítsa be a következőket az /etc/systemd/system.conf fájlban:

FILE /etc/systemd/system.conf
LogLevel=debug

Vagy engedélyezze a hibakereső parancssort, amely parancssort nyit a tty9-nél. Ez segít a szolgáltatások hibakeresésében az számítógép bootolási folyamata során.

root #systemctl enable debug-shell.service

e4rat használata

Kérjük, hogy ne feledje el szerkeszteni az /etc/e4rat.conf fájlt, az 'init' beállítással a /lib/systemd/systemd számára. Ellenkező esetben az OpenRC fog bootolni.

GRSecurity megerősítés

A grsecurity engedélyezése esetén a systemd-networkd a következő hibát naplózhatja:

CODE systemd-networkd hiba
could not find udev device: Permission denied

A hiba azért jelentkezik, mert a systemd-networkd nem root felhasználó alatt fut, és a grsecurity megtagadja az ilyen felhasználók számára a teljes /sys struktúrához való hozzáférést. Ennek az opciónak a letiltásához tiltsa le a CONFIG_GRKERNSEC_SYSFS_RESTRICT kernelopciót.

A logind is tapasztalhat finom jogosultsági problémákat, ha a CONFIG_GRKERNSEC_PROC aktív. Tekintse meg a bug #472098 hibát.

shutdown -rF nem kényszeríti az fsck programot

A systemd-fsck szolgáltatás felelős az fsck futtatásáért, amikor szükséges. Ez nem tiszteli a shutdown -rF opcióját, hanem a következő kernel indítási paramétereket tiszteli.

Boot paraméter Támogatott opciók Leírás
fsck.mode auto
force
skip
Szabályozza a működési módot. Az alapértelmezés az auto, ami biztosítja, hogy a fájlrendszer ellenőrzése akkor történjen meg, amikor a fájlrendszer ellenőrző úgy ítéli meg, hogy szükséges. A force feltétel nélkül teljes fájlrendszer ellenőrzést eredményez. A skip kihagy minden fájlrendszer ellenőrzést.
fsck.repair preen
yes
no
Szabályozza a működési módot. Az alapértelmezés a preen, amely automatikusan javítja azokat a problémákat, amelyek biztonságosan javíthatók. A yes minden kérdésre igennel válaszol az fsck által, míg a no minden kérdésre nemmel válaszol.

Opcionális systemd bináris szoftverek

Bizonyos USE jelölőzászlók beállításával sok választható systemd bináris szoftver létrehozható. Az alábbiakban egy nem teljes USE jelölőzászlós felsorolás található.

USE jelölőzászló További létrehozott bináris szoftver
curl /lib/systemd/systemd-journal-upload
http /lib/systemd/systemd-journal-gatewayd
/lib/systemd/systemd-journal-remote

További olvasnivaló a témában

Külső források

Hivatkozások