Montag, 13. Juni 2016

101.3 Upstart und systemd

Upstart

  • SysVinit startet alle Dienste nacheinander
  • Upstart startet die nicht voneinander abhängigen Dienste parallel, was einen spürbar beschleunigten Systemstart zur Folge hat
  • Upstart wurde bei Ubuntu und seinen Derivaten verwendet, wurde zwischenzeitlich jedoch durch systemd abgelöst
  • Da Upstart zu SysVinit kompatibel sein soll, sind viele Parallelen zu finden, z.B. können die Befehle init und telinitrunlevel und sysctl weiterhin verwendet werden
  • Ebenfalls werden weiterhin die Verzeichnisse /etc/rc.d abgearbeitet und der Prozess mit der PID1 heißt weiter /sbin/init
  • Unterschiede zu SysVinit
    • Konfigurationsdateien liegen in /etc/init und /etc/event.d
    • /etc/inittab wird nicht mehr verwendet
    • Die Informationen, in welchen Runleveln ein Dienst gestartet, bzw. gestoppt wird, sind in den Skripten selbst hinterlegt und nicht mehr in den Verknüpfungen
    • Verwendung kurzer Kommandos zur Steuerung der Dienste bzw. der Daemonen
      reload smbd                            Smaba-Server neu starten NEU
      /etc/rc.d/smbd reload    ALT
    • gültige Kommandos für Upstart Systeme sind start, stopp, restart, reload und status


systemd

  • Alternative zu SysVinit und "Nachfolger" von Upstart
  • Lädt ebenfalls parallel Dienste, kann jedoch im Gegensatz zu Upstart auch Anfragen an Dienste speichern, die noch nicht geladen sind
  • systemd stellt dafür Sockets zur Verfügung
  • systemd ist kompatibel zu den System-V-basierten Systemen (SysVinit)
  • bekannten Kommandos können weiterhin verwendet werden (init, runlevel, sysctl)
  • eigene Tools können die "alten" ersetzten: Ersatz für sysctl ist systemctl
    • anstatt init 3 -> systemctl isolate runlevel3.target    runlevel3.target ist dabei ein Link auf multi-user-target
    • systemctl isolate rescue.target           Ansteuerung des Single-User-Mode (runlevel 1)
    • systemctl isolate reboot.target           Neustart
    • systemctl isolate poweroff.target       Ausschalten
  • Units bei systemd entsprechen in etwa den Skripten unter SysVinit, sind nur einfacher aufgebaut
  • Die Dateien zu den Units liegen unter /usr/lib/systemd/sytem oder /lib/systemd/system
  • konfigurierte Targets werden in das Verzeichnis /etc/sytemd/system verknüpft
  • Festlegen eines standardmäßigen Targets für den Systemstart, indem man eine Verknüpfung in /etc/systemd/system/default.target anlegt bzw. ändert
    ln -s /usr/lib/sytemd/sytem/multi-user.target /etc/systemd/system/default.target   (der Computer startet nach einem Neustart lediglich in die Multiuser-Umgebung, aber nicht in die grafische)
  • starten und beenden von Diensten ebenfalls über systemctl möglich:
    systemctl start sshd.service    (SSH Server starten)
  • Manipulation der Dienste durch folgende Befehle möglich:
    • start             startet einen Dienst
    • stop               stoppt den Dienst
    • restart         startet den Dienst neu
    • status           überprüft, ob ein Dienst läuft
    • enable           Dienst wird beim Systemstart automatisch gestartet und alle notwendigen Symlinks werden erzeugt
    • disable         entfernt alle Symlinks, die für den automatischen Start notwendig sind  

Keine Kommentare:

Kommentar veröffentlichen