systemd
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
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).
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:
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
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.
[*] 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.
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.
/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.
/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
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
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.
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.
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:
/boot/grub/grub.conf
Példa GRUB beállítás a systemd számáratitle=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:
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.
/etc/default/grub
GRUB 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.
/boot/grub/grub.cfg
Példa a GRUB2 beállításának egy kis töredékrészérelinux /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:
/etc/yaboot.conf
Példa yaboot beállítása a systemd számáraimage=/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
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.
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
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:
/etc/locale.conf
Rendszer nyelvterületének a beállításaLANG="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ó:
/etc/modules-load.d/virtualbox.conf
Példafájl a virtualbox moduljaihozvboxdrv
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
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.
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.
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
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 asystemd.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 aloglevel=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
/etc/systemd/system/apache2.service.d/mem-limit.conf
Pé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
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:/etc/systemd/system/foo.service.d/override.conf
ExecStart= 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:
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:
~/.config/systemd/user/backup-work.timer
Pé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
~/.config/systemd/user/backup-work.service
Pé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:
~/.config/systemd/user/backup-work.service
Pé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
- Gentoo bugtracker: known bugs
- Freedesktop.org bugtracker: known bugs
- Upstream hibakeresési útmutató
- systemd-analyze verify parancsot használhatjuk annak érdekében, hogy olvasható figyelmeztetéseket és hibákat kapjunk az adott systemd unit-hoz kapcsolódóan.
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.
/etc/systemd/system.conf.d/system.conf
Alapértelmezett időtúllépési érték csökkentése 10 másodpercre a megakadt rendszerszolgáltatások esetében.[Manager]
DefaultTimeoutStopSec=10s
~/.config/systemd/user.conf
Alapé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.
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:
/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:
/etc/crypttab
Beállítási fájl a titkosított adathordozó blokkeszközök számáracrypt-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:
/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:
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
- systemd/systemd-homed — provides instructions to migrate home directories from their traditional structure into the encrypted by default, portable concept provided by systemd's homed.
- systemd/systemd-boot — a minimal UEFI boot manager.
- systemd/systemd-nspawn — a lightweight, loosely chroot-like, OS-level OCI container environment native to systemd.
- Comparison of init systems — összehasonlítja és szembeállítja a Unix(szerű) operációs rendszerek init-rendszereit (az indítórendszereket)
- Hard dependencies on systemd — a (possibly partial) list of packages in Gentoo's repository that unconditionally require systemd
- OpenRC to systemd Cheatsheet — A cikk tartalmazza az OpenRC init-renszerben általánosan használt parancsok listáját és az azokkal egyenértékű systemd init-rendszerben használt parancsokat rendeli hozzájuk.
Külső források
- GYIK
- Tippek és trükkök
- A systemd mesterfokú ismerete: A szolgáltatások és alkalmazások biztonságossá tétele és homokozó környezetbe helyezésük
Hivatkozások
- ↑ https://forums.gentoo.org/viewtopic-t-977530-postdays-0-postorder-asc-start-25.html Lekérve 2016. március 12-én