<para>Willkommen zum &kde; System V Init Editor, eher bekannt (und im folgenden auch so benannt) als &ksysv;. Dieser Abschnitt führt ein paar Konzepte ein und beschreibt, was Sie mit &ksysv; tun können. </para>
<title>Eine kurze Beschreibung von System V Init</title>
<para>Die folgende Erläuterung ist <quote>geliehen</quote>von <application>tksysv</application> (einer Inspirationsquelle für &ksysv;) </para>
<para>Die System V Init entwickelt sich rasch zum Standard für die Kontrolle des Programmstarts beim Hochfahren des Systems in der &Linux; Welt. Und zwar deshalb, weil es leichter zu benutzen, leistungsfähiger und zugleich flexibler ist als die traditionelle <acronym>BSD</acronym>-Init. </para>
<para>Ich werde hier nicht weiter auf geschichtliche Aspekte eingehen (u.a. weil ich darüber selbst nichts weiß :-). </para>
<para>Die Init-Binärdatei liegt unter <filename class="directory">/sbin</filename> und nicht unter <filename class="directory">/etc</filename>. Dies ist deshalb wichtig, weil vielleicht jemand versuchen könnte, eine Maschine auf System V Init umzustellen, ohne eine Neuinstallation und Neuformatierung vorzunehmen. Der &Linux; Kernel sieht zuerst unter <filename class="directory">/etc</filename> nach einer Init-Datei. Deshalb müssen Sie sichergehen, dass die alte Init von dort entfernt wurde, falls es dort eine gab. </para>
<para>Die SysV Init unterscheidet sich auch dadurch von der <acronym>BSD</acronym> Init, dass sich die Konfigurationsdateien in einem Unterordner von <filename class="directory">/etc</filename> befinden statt direkt in <filename class="directory">/etc</filename>. Dieser Ordner heißt <filename class="directory">rc.d</filename>. Dort finden Sie <filename>rc.sysinit</filename> und folgende weitere Ordner: </para>
<para><filename class="directory">init.d</filename> enthält eine ganze Menge Skripte. Grundsätzlich benötigen Sie ein Skript für jeden Systemdienst, den Sie beim Hochfahren des Systems bzw. beim Wechsel auf einen anderen Runlevel starten möchten. Systemdienste beinhalten solche Dinge wie Netzwerk, <acronym>NFS</acronym>, &Sendmail;, httpd &etc; Systemdienste beinhalten dagegen nicht solche Sachen wie <command>setserial</command>, das nur einmal gestartet wird. Solche Aufrufe gehören nach <filename>rc.local</filename>. </para>
<para><filename>rc.local</filename> sollte seinerseits unter <filename class="directory">/etc/rc.d</filename> liegen, wenn Sie es benötigen. Die meisten Systeme besitzen diese Datei, auch wenn es eigentlich nicht viel Verwendung dafür gibt. Sie können ebenfalls ein <filename>rc.serial</filename> in <filename class="directory">/etc/rc.d</filename> anlegen, wenn Sie beim Hochfahren etwas ausführen lassen wollen, was mit dem seriellen Anschluss zu tun hat. </para>
<para>Der standardmäßige Runlevel ist in <filename>/etc/inittab</filename> eingetragen. Sie sollten im Anfangsbereich eine Zeile wie die folgende sehen: </para>
<screen>id:3:initdefault:</screen>
<para>An diesem Punkt können Sie einen Blick in die zweite Spalte werfen und wahrscheinlich feststellen, dass der voreingestellte Runlevel 3 ist. Wenn Sie das ändern möchten, dann können Sie <filename>/etc/inittab</filename> von Hand bearbeiten und die "3" ändern. Seien Sie sehr vorsichtig, wenn Sie an der inittab Änderungen durchführen. Falls Sie doch etwas durcheinandergebracht haben, dann kommen Sie es reparieren, indem Sie das System neu starten und folgendes ausführen: </para>
<para>Dies <emphasis>sollte</emphasis> Ihnen ermöglichen, in den Einzelnutzer-Modus zu kommen und die Reparatur vorzunehmen. </para>
<para>Aber wie startet es nun all die richtigen Skripte? Wenn Sie <userinput><command>ls</command> <option>-l</option></userinput> eingeben in <filename class="directory">rc3.d</filename>, dann sehen Sie wahrscheinlich etwas wie das Folgende: </para>
<para>Sie werden bemerken, das sich in diesem Ordner keine richtigen Dateien befinden. Stattdessen ist jeder Eintrag hier eine Verknüpfung zu einem der Skripte im Verzeichnis <filename class="directory">init.d</filename>. </para>
<para>Die Verknüpfungen haben auch ein <literal>S</literal> und eine Nummer am Anfang. Das <literal>S</literal> besagt, dass dieses bestimmte Skript gestartet werden soll, so wie umgekehrt ein <literal>K</literal> den Stopp bedeuten würde. Die Nummer dient der Sortierung. Tatsächlich startet init alle Systemdienste in der Reihenfolge, in der sie erscheinen. Sie können die Nummern also doppelt vergeben, aber es wird Sie nur selbst durcheinander bringen. Sie benötigen eine zweistellige Zahl, zusammen mit einem großgeschriebenen <literal>S</literal> oder <literal>K</literal>, um einen Systemdienst zu starten bzw. anzuhalten. </para>
<para>Wie startet und stoppt init eigentlich Systemdienste? Ganz einfach: Jedes der Skripte ist so geschrieben, dass es ein Argument wie <option>start</option> und <option>stop</option> akzeptiert. Sie können diese Skripte tatsächlich von Hand auf der Kommandozeile folgendermaßen starten: </para>
<para>Dies würde den httpd-Server anhalten. Init liest den Namen, und wenn der ein <literal>K</literal> beinhaltet, wird das Skript mit dem Argument <option>stop</option> aufgerufen. Wenn er ein <option>S</option> beinhaltet, wird das Skript mit dem Argument <option>start</option> aufgerufen. </para>
<para>Manche Leute wünschen sich eine einfache Art, Maschinen für viele Zwecke einzurichten. Ich könnte z. B. ein <quote>server</quote>-Runlevel haben, das nur httpd, sendmail, Netzwerk &etc; laufen lässt. Darüber hinaus könnte ich auch noch einen <quote>Benutzer</quote>-Runlevel haben, das z. B. <application>tdm</application> startet. </para>
<para>Hier lernen Sie die Benutzung von &ksysv;. Sie sollte nicht sehr schwierig sein, weil das Programm so benutzerfreundlich wie möglich angelegt wurde. </para>
<para>Die Verwendung von &ksysv; mit einer Maus oder einem anderen Zeigegerät ist einfach, um nicht zu sagen trivial: Ziehen Sie einfach einen Eintrag aus dem Bereich der <guilabel>Verfügbaren Systemdienste</guilabel> auf einen der sechs Runlevel, um ihn auf diesem Level zu starten (bzw. zu stoppen). </para>
<para>Sie können Skripte auch zwischen Runleveln verschieben oder die Position innerhalb eines Levels verändern, indem sie es woanders hin ziehen. Dabei wird der Eintrag von seinem ursprünglichen Runlevel (oder seiner Position) entfernt. Dies geschieht nur dann nicht, wenn sie einen Eintrag aus dem Bereich der <guilabel>Verfügbaren Systemdienste</guilabel> herausziehen. </para>
<para><emphasis>Beachten Sie:</emphasis> Einträge werden verschoben, wenn Sie diese in einen neuen Bereich ziehen. Um sie lediglich auf einen neuen Runlevel zu kopieren, müssen Sie ausdrücklich <guimenuitem>Kopieren</guimenuitem> aus dem Menü <guimenu>Bearbeiten</guimenu> oder aus dem Kontextmenü wählen und in den Zielbereich <guimenuitem>Einfügen</guimenuitem> -- sogar dann, wenn derselbe Eintrag bereits zuvor im Zielbereich der Aktion existiert hat. </para>
<para>Die <quote>Sortiernummer</quote> eines Eintrags kann manchmal nicht berechnet werden. In so einem Fall müssen Sie die Sortiernummern der umgebenden Einträge bearbeiten, bevor Sie nochmals versuchen können, den Systemdienst einzufügen. </para>
<para><emphasis>Beachten Sie:</emphasis> Gegenwärtig gibt es <emphasis>keine</emphasis> Möglichkeit, Einträge wiederherzustellen, die in den <guiicon>Papierkorb</guiicon> geworfen wurden. Seien Sie also vorsichtig. </para>
<para>Sie können die <keycap>Tabulator</keycap>-Taste benutzen, um die verschiedenen Arbeitsbereiche zu aktivieren (<guilabel>Verfügbare Systemdienste</guilabel>, <guilabel>Runlevel 1 Start</guilabel>, <guilabel>Runlevel 1 Stop</guilabel> &etc;) sowie die Cursor-Tasten, um eine Auswahl ober- oder unterhalb der bisherigen zu treffen. </para>
<para>Um einen Eintrag in einen anderen Runlevel zu verschieben, verschieben Sie ihn mit <guimenuitem>Ausschneiden</guimenuitem> in die Zwischenablage (Sie können auch <keycombo action="simul">&Strg; <keycap>X</keycap></keycombo> benutzen) und fügen Sie ihn in den gewünschten Runlevel mit <guimenuitem>Einfügen</guimenuitem> (mit <keycombo action="simul">&Strg; <keycap>V</keycap></keycombo>) ein. </para>
<para>Um die Sortiernummer oder den Namen eines Eintrags manuell zu ändern, drücken Sie die <keycap>Eingabe</keycap>-Taste, um den Eigenschaften-Dialog zu öffnen. Benutzen Sie die <keycap>Tabulator</keycap>-Taste, um zwischen verschiedenen Feldern zu wechseln. Schließen Sie den Dialog durch erneutes Drücken der <keycap>Eingabe</keycap>-Taste, um die Änderungen zu akzeptieren, oder drücken Sie <keycap>Esc</keycap>, um die Änderungen zu verwerfen. </para>
<para>Wegen der Gefahr des Datenverlusts erfordern alle Einträge im Menü <guimenu>Datei</guimenu> eine Bestätigung, bevor sie ausgeführt werden. </para>
<action>Schaltet die Anzeige der Protokolldatei in einem extra Fenster ein oder aus (alle Vorgänge, Fehlermeldungen &etc; werden in einer Protokolldatei gespeichert).</action>
<action>Alle bisher erwähnten Einstellungen gelten nur bis zum nächsten Systemstart, es sei denn, Sie wählen diesen Menüpunkt. Dies gilt einschließlich der Fenstergröße und -aufteilung.</action>
<para>Alle Einstellungen werden gespeichert in <filename>$<envar>TDEHOME</envar>/share/config/ksysvrc</filename>. Voreinstellungen werden der globalen Datei (<filename>$<envar>TDEDIR</envar>/share/config/ksysvrc</filename>) entnommen, falls sie verfügbar ist. Andernfalls werden sie von &ksysv; wiederhergestellt. Änderungen an den Voreinstellungen werden gespeichert in einer lokalen <filename>ksysvrc</filename>. </para>
<para>Geben Sie am <acronym>LILO</acronym>-Prompt <userinput>linux single</userinput> ein und drücken Sie die <keycap>Eingabe</keycap>-Taste, um im Einzelnutzer-Modus zu starten. Dann bearbeiten Sie die Datei <filename>/etc/inittab</filename> und ändern der standardmäßige Runlevel auf einen vernünftigen Wert (<literal>3</literal> sollte normalerweise in Ordnung sein). </para>
<para>Wenn Sie SuSE oder Delix (DLD) benutzen, dann müssen Sie zusätzliche Dateien in <filename class="directory">/etc</filename> bearbeiten, die nur in diesen Distributionen vorhanden sind. Bitte lesen Sie die Details im Handbuch der Distribution nach. </para>
<para>Die Art, wie Systemdienste in diesen Distributionen gestartet werden, vereinfacht die Konfiguration für die proprietären Einrichtungsprogramme dieser Distributionen, entspricht aber leider keinem Standard. Die Autoren von &ksysv; planen eine Erweiterung des Programms für diesen Ansatz. </para>
<para>Falls Sie eine andere Distribution verwenden: Überprüfen Sie bitte, ob alle Konfigurationsdateien vorhanden sind, die vom jeweiligen Systemdienst benötigt werden (und auch, ob sie sich im richtigen Verzeichnis befinden). Manche Dienste (wie z. B. <application>Apache</application> bzw. <command>httpd</command>) beenden sich einfach ohne Nachricht, wenn ihre Konfigurationsdateien nicht vorhanden oder falsch eingerichtet sind. </para>
<para>Die Bedeutung der &Linux;-Runlevel variiert von Distribution zu Distribution, kann sogar von Version zu Version unterschiedlich sein. Falls Sie eine andere Distribution benutzen, senden Sie mir bitte Informationen über die Runlevel, damit diese diesem Handbuch zugefügt werden können. </para>