Debian testing - Umstellung auf abhängigkeitsbasierte Startreihenfolge

Vorhin führte ich auf meinem EeePC 901A mit Debian Lenny/testing mal wieder ein apt-get update && apt-get upgrade aus und legte wegen der vielen zurückgehaltenen Pakete gleich noch ein apt-get dist-upgrade nach. Dabei kam es zu einer für meinen Geschmack doch recht wichtigen Meldung:

Konfiguriere sysv-rc
The boot system is prepared to migrate to dependency based sequencing. It is recommended to migrate for the following reasons:

  • the order of boot and shutdown is calculated dynamically, using dependency information declared within each init.d script, which ensures optimum and correct boot sequence for the set of installed packages
  • protection against problems introduced by new or upgraded packages by preserving the boot sequence when problems are detected; the boot sequence is only modified if it is safe to do so
  • potential for further optimization by way of concurrent boot methodology in order to increase boot efficiency
  • fixes long standing issues with the legacy, static priority based boot ordering.

This migration process is non-reversible. The legacy way of ordering boot scripts using static sequence numbers will be made obsolete by choosing to migrate. Any boot sequence changes done locall will be lost and have to redone using dependencies.
See http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot for more information about dependency based boot sequencing. To reattempt the migration process run dpkg-reconfigure sysv-rc.

Migrate legacy boot sequencing to dependency based sequencing?

Sinngemäß und zusammengefasst übersetzt geht es einfach darum, dass der bisherige statische Startvorgang durch einen dynamischen ersetzt werden soll. In der Vergangenheit war es üblich, jedem zu startenden Dienst (deamon) eine Nummer innerhalb der Runlevel-Definitionen zuzuordnen, wodurch die Dienste in der den Nummern entsprechend vorgegebenen Reihenfolge gestartet und gestoppt wurden. Dies soll nun durch ein neues System ersetzt werden, welches dynamischer arbeitet und Dienste nach Abhängigkeiten sortiert und versetzt starten kann, um Verzögerungen im Systemstart weitestgehend zu verkürzen. Von dieser wirklich sinnvollen Entwicklung konnte man schon vor einiger Zeit lesen - nun ist es also auch bei Debian testing so weit und es wird nicht ohne Grund empfohlen, dieses neue System zu verwenden.
Allerdings hat das ganze auch einen kleinen Haken, in einem Bugreport mit einigen kurzen Übersetzungen fand sich z.B. folgende Passage:

Das Startsystem ist vorbereitet, um auf abhängigkeitsbasierte Reihenfolge umgestellt zu werden. Dieser Schritt ist nicht umkehrbar, wird aber empfohlen: Er ermöglicht die Optimierung des Startprozesses auf Geschwindigkeit und Effizienz und stellt ein robusteres Gerüst für die Entwicklung bereit.

Wer dies im englischsprachigen Text übersehen hat, sei also noch mal darauf hingewiesen, dass eine Rückkehr zum alten Startsystem nicht möglich ist - außer durch extrem unangenehme Bastelarbeit oder Neuinstallation. Zumindest für die gängigen Dienste sollte das neue System aber einwandfrei laufen, nur kann es etwas frickelig werden, wenn man in den Startscripten manuell herumgefummelt hat. Derartiges mache ich sicherlich nicht als einziger Linux-User ganz gerne mal, um bestimmte Deamons anders aufzurufen oder in einer nicht von der Distribution vorgesehenen Reihenfolge zu starten oder auch, weil ein Programm kein (funkionierendes) Startscript mitgeliefert hat oder oder oder … Genau deshalb sollte man bei obiger Meldung nicht achtlos weiterklicken und sich das noch eine Weile in Erinnerung behalten.

3 Reaktionen zu “Debian testing - Umstellung auf abhängigkeitsbasierte Startreihenfolge”

  1. admin

    Um jetzt die Startreihenfolge ändern zu können, sind zwei Schritte erforderlich:

    Ein Eintrag der Abhängigkeit in der Datei /etc/init.d/Dienstname in den am Anfang stehenden Init-Info-Zeilen:

    # Required-Start:
    # Required-Stop:

    Dort müssen Dienste einfach mit ihrem Namen und Variablen mit führendem “$” eingetragen werden.

    Anschließend muss die Änderung der Abhängigkeit noch dem System mit folgendem Befehl bekannt gemacht werden:

    # update-rc.d Dienstname defaults
  2. Bachsau

    @admin:
    > Anschließend muss die Änderung der Abhängigkeit noch dem
    > System mit folgendem Befehl bekannt gemacht werden

    Leider nicht. defaults steht nur für 2,3,4 und 5, liest die Werte aber nicht aus.

  3. admin

    defaults beinhaltet nicht nur die Startlevel 2-5 sondern auch die Stoplevel 0, 1 und 6.
    Theoretisch sollte das gehen, klappte bei mir schließlich auch. Allerdings muss man bei Updates des Paketes umsichtig sein und darauf Acht geben, dass die Änderungen nicht überschrieben werden.

Einen Kommentar schreiben