====== SysVinit ====== * [[http://wiki.ubuntuusers.de/Dienste]] ===== Beschreibung ===== Das starten und stoppen von Diensten wird in einem //SysVinit-System// per //Start-Stop-Dateien// durchgeführt. Sollen bestimmte Dienste beim Systemstart automatisch ausgeführt werden, dann werden Sym-Links in die entsprechenden //Run-Level-Verzeichnisse// gelegt. Geht die Maschine in den //Run-Level 3//, dann werden alle Sym-Links ausgeführt, die im Verzeichnis ///etc/rc3.d/// liegen und auf entsprechende Start-Stop-Scripte verweisen. In //Ubuntu 10.04// sieht der Sym-Link (Run-Level 3) für den Apache2 so aus: # ls -l /etc/rc3.d/S20apache2 lrwxrwxrwx 1 root root 17 2010-05-27 12:42 /etc/rc3.d/S20apache2 -> ../init.d/apache2 Das **S** steht für //Start// und die **20** stellt die richtige Position in der Sortierreihenfolge beim Ausführen sicher. Unter Ubuntu sieht das so aus: # update-rc.d apache2 defaults Adding system startup for /etc/init.d/apache2 ... /etc/rc0.d/K20apache2 -> ../init.d/apache2 /etc/rc1.d/K20apache2 -> ../init.d/apache2 /etc/rc6.d/K20apache2 -> ../init.d/apache2 /etc/rc2.d/S20apache2 -> ../init.d/apache2 /etc/rc3.d/S20apache2 -> ../init.d/apache2 /etc/rc4.d/S20apache2 -> ../init.d/apache2 /etc/rc5.d/S20apache2 -> ../init.d/apache2 Zum Beispiel starte und stopt man den Apache so: # /etc/init.d/apache2 start # /etc/init.d/apache2 status # /etc/init.d/apache2 stop Diese Start-Stop-Scripte benötigen in aller Regel (allerdings nicht zwingend in Ubuntu) einen LSB-konformen Header. Der sieht ungefähr so aus: **Allgemein:** ### BEGIN INIT INFO # Provides: # Required-Start: # Required-Stop: # Should-Start: # Should-Stop: # Default-Start: # Default-Stop: # Short-Description: ### END INIT INFO **konkret für Squid:** ### BEGIN INIT INFO # Provides: squid # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Should-Start: $named # Should-Stop: $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Squid HTTP Proxy ### END INIT INFO ===== Run-Level ===== ==== Handhabung ==== //Run-Level// anzeigen: # runlevel N 2 Das bedeutet: - vorheriger //Run-Level//: **N** (Boot) - aktueller //Run-Level//: **2** Wechsel in den //Run-Level 3//: # init 3 nochmal den //Run-Level// anzeigen: # runlevel 2 3 ==== Definierte Run-Level ==== Jede Linux-Distribution definiert ihre Run-Level etwas anders. Im Allgemeinen kann man aber von folgender Festlegung ausgehen: * **Run-Level 0**: "Stop" * **Run-Level 1**: "Single-User-Mode" (ohne Netzwerk) * **Run-Level 2**: "Server-Mode" (mit Netzwerk, ohne GUI) * **Run-Level 3**: "Desktop-Mode" (mit Netzwerk, mit GUI) * **Run-Level 6**: "Reboot" ===== FreeBSD ===== [[https://docs.freebsd.org/de/books/handbook/config/|Kapitel 11. Konfiguration und Tuning]] - ''11.2.1. Dienste über das rc.d-System starten'' //(Ein einfaches Startskript...)//