Systemd: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(43 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''systemd''' ist ein Ersatz für den System V init Daemon in Linux.
[[Kategorie:systemd]]
= Besonderheiten =
=Lernpfad=
; Abwärtskompatibilität zu SysVinit-Scripten
*[[Systemd Lernpfad]]
: systemd ist abwärtskompatibel, jedoch werden Features benutzt, welche nur unter Linux verfügbar sind.
=Grundlagen=
: Somit ist er nur auf Systemen mit Linux-Kernel lauffähig.
*[[Systemd Basics]]
; Parallelisierung
*[[Systemd Besonderheiten]]
: Es werden möglichst viele Prozesse gleichzeitig beim Booten gestartet um das System optimal aus zulasten.
*[[Systemd Units]]
; Abhängigkeits-Regeln
*[[Systemd Runlevel / Targets]]
: Um bei der Parallelisierung dennoch sicher zustellen dass Dienste welche von anderen Diensten benötigt werden rechtzeitig vor diesen zu starten. (z.B. '''D-Bus''')
*[[Systemd systemctl]]
; cgroups
*[[Systemd Service examples]]
: Anstelle von ProzessIDs werden cgroups benutzt. Dies bedeutet, dass Dienste nicht mehr "Abhauen" können. Selbst durch doppeltes Forken.
*[[Systemd Best Practice]]
; Ereignis basiertes Starten von Diensten
*[[Systemd kurz und knapp]]
: Ähnlich '''inetd''' kann systemd Dienste bei Bedarf starten.
*[[systemctl kurz und knapp]]
: Dies kann z.B. über einen Socket oder Bus geschehen.
*[https://wiki.ubuntuusers.de/systemd/ Systemd ubuntu-users]
; Binärscripte
: Langfristig sollen Shell-Skripte komplett verschwinden und anstelle eines Init-Skripts jeder Dienst eine Konfigurationsdatei erhalten in welcher definiert wird wie dieser zu starten ist.


= Verfügbarkeit (01/2015) =
=Systemctl=
*[[Systemd systemctl]]
=Service examples=
*[[Systemd Service examples]]
=Service timers=
*[[Systemd Service timers]]
=Loginctl=
*[[loginctl]]


{|
=Journald=
*[[Systemd journald]]
=Timedatectl=
*[[Systemd timedatectl]]


 
=Mounts=
{|
*[[Systemd mounts]]
! Distribution !! Status
=Netzwerkkarten=
|-
*[[Systemd link]]
| '''Fedora''' || Fedora seit version 15 Standard
|-
| '''openSUSE''' || openSUSE seit 12.1 Standard
|-
| '''Mandriva''' || seit Mandriva 2011 Standart
|-
| '''Debian''' || seit debian 8 jessie Standart
|-
| '''Ubuntu''' || seit 15.04
|-
| '''Arch''' || seit Oktoper 2012
|-
| '''Red Hat''' || seit version 7
|}
 
systemd wurde als externe Abhängigkeit für '''GNOME 3.2''' vorgeschlagen.
 
= Administration =
== Runlevel / Targets ==
{| class="wikitable"
! SystemVinit Runlevel !! Systemd Target !! Kommentar
|-
| 0 || runlevel0.target, poweroff.target || System herunterfahren
|-
| 1, s, single || runlevel1.target, rescue.target || Einzelnuzer Modus
|-
| 2, 4 || runlevel2.target, runlevel4.target, multi-user.target || Benuzerdefiniert, Standardmäsig identisch zu 3
|-
| 3 || runlevel3.target, multi-user.target || Multi-user, Shell. Anmeldung über mehrere Consolen und7oder netzwerk
|-
| 5 || runlevel5.target, graphical.target || Multi-user, Grafisch. Gewöhnlich alle Dienste aus 3 sowie grafische Oberfläche
|-
| 6 || runlevel6.target, reboot.target || Reboot
|-
| emergency || emergency.target || Notfall Shell
|}
 
== systemctl ==
 
aktivieren/deaktivieren systemstart
*systemctl enable
*systemctl disable
service steuern
*systemctl start
*systemctl stop
*systemctl status
*systemctl reload
*systemctl restart
service files anzeigen
*systemctl list-units
*systemctl list-unit-files
 
==Service File==
Beispiel:
*/etc/systemd/system/firewall.service
<pre>
Description=firewall
After=network.target syslog.target
 
[Service]
RemainAfterExit=yes
ExecStart=/usr/local/sbin/firewall start
ExecStop=/usr/local/sbin/firewall stop
User=root
 
[Install]
WantedBy=multi-user.target
</pre>
 
==Änderungen==
Nach Änderungen
*systemctl daemon-reload
 
== FAQ ==
; Wie setze ich das Runlevel beim Booten?
: Unter systemd werden Runlevel als Targets bezeichnet. Um das Boot "Target" beim Booten zu setzen hängt man z.B. einen der folgenden Kernel Parameter an.
* <code>systemd.unit=multi-user.target</code> (entspricht Runlevel 3)
* <code>systemd.unit=rescue.target</code> (entspricht Runlevel 1)
 
 
; Wie setze ich das Standard Target?
: Für Runlevel 3
# systemctl -f enable multi-user.target
: Für Runlevel 5
# systemctl -f enable graphical.target


= Links =
= Links =
* https://www.digitalocean.com/community/tutorials/systemd-essentials-working-with-services-units-and-the-journal
* https://www.heinlein-support.de/sites/default/files/was_man_ueber_systemd_wissen_sollte.pdf
* http://de.wikipedia.org/wiki/systemd
* http://de.wikipedia.org/wiki/systemd
* http://en.wikipedia.org/wiki/systemd
* http://en.wikipedia.org/wiki/systemd
* https://wiki.archlinux.org/index.php/Systemd
* https://wiki.archlinux.org/index.php/Systemd
* http://www.heise.de/open/artikel/Das-Init-System-Systemd-Teil-1-1563259.html?artikelseite=4
* http://www.heise.de/open/artikel/Das-Init-System-Systemd-Teil-1-1563259.html?artikelseite=4
* https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs
* https://www.admin-magazin.de/Das-Heft/2014/10/Systemstart-mit-Systemd-unter-Linux

Aktuelle Version vom 17. Oktober 2026, 18:02 Uhr