Init

kann sich nicht selbst killen - kill -9 ist nutzlos ;)

System-V-init => populär!!1!

Alternativen kommen so langsam:

  • Upstart
  • systemd
  • minit/cinit

Runlevels bestimmen was für Dienste gestartet werden:

  • klassische Runlevels:

    • 1/S: Single-User-Mode
    • 2: Multiuser (ohne Netzwerk)
    • 3: Multiuser mit Netzwerk
    • 4: frei
    • 5: Multiuser mit Netzwerk und GUI
    • 0/6: System Halt/Reboot
    • 7-9: frei-konfigurierbar
  • Bedarfs-Runlevel A,B,C - führen gewünschte Aktionen aus, ohne den aktuellen Runlevel zu ändern:

    xy:ABC:ondemand:Aktion
    
  • Konfiguration unter /etc/inittab, Spaltentrennung durch :

    etikett:RUNLEVEL:Aktion
    
    • etikett: frei wählbarer String

    • RUNLEVEL: In welchem Runlevel gilt die Aktion

    • Aktion:

      • respawn: Starte Prozess bei beenden neu
      • wait: Starte Prozess einmal und warte aufs Ende
      • bootwait: Aktion wird beim Booten ausgefährt, Runlevel egal
      • initdefault: Welches Runlevel ist der Standard
      • ctrlaltdel: Was passiert bei diesen drei Tasten
  • Bootskripte (z.B. fsck, Uhrzeit setzen, mount, KernelModule laden..)

    • Debian: /etc/init.d/rcS
    • RedHat: /etc/rc.d/init.d/boot
    • SuSE: /etc/init.d/boot
  • init-skripte (Starten Dienste)

    • Haben Parameter wie start, stop, restart, reload, etc
    • Debian: /etc/init.d/
    • RedHat: /etc/rc.d/init.d/
    • Beispiel: /etc/init.d/mailserver restart
  • Runlevels konfigurieren (Einfach durch Symlinks!)

    • jedes Level hat einen eigenen Ordner:

      • Debian: /etc/rcN.d/ (update-rc.d)
      • RedHat: /etc/rc.d/rcN.d/ (chkconfig)
      • SuSE: /etc/init.d/rcN.d/ (insserv)
    • jeder Symlink hat ein spezielles Format:

      • S/K: Dienst starten/beenden
      • Zahl: Reihenfolge
  • System neustarten:

    • init 6
    • reboot
    • ctrl+alt+del
  • System ausschalten

    • init 0
    • sync && halt
    • shutdown -h now
    • shutdown -h 12:00 "Mittagspause"
    • shutdown -c Abbruch vom momentanen shutdown.