Hauptindex | Abschnitt 8 | English | 日本語 | Optionen |
/sbin/telinit [-t sec] [0123456SsQq]
Die Runlevel 0, 1 und 6 sind reserviert. Der Runlevel 0 wird dazu verwendet, das System anzuhalten, der Runlevel 6 iwr dafür benutzt, das System neuzusatarten, und der Runlevel 1 wird dafür verwendet, das System in den Single-User-Modus herunterzufahren. Der Runlevel S wird normalerweise nicht direkt angesprungen, sondern dient nur als Zwischenstufe für die Skripte, die ausgeführt werden, wenn in den Runlevel 1 übergegangen wird. Weitere Informationen darüber finden Sie in den Handbuchseiten zu shutdown(8) [Englisch] und inittab(5).
Die Runlevel 7-9 sind ebenfalls gültig, jedoch nicht wirklich dokumentiert. Das liegt daran, daß die "traditionellen" UNIX-Varianten diese nicht benutzen. Manche werden sich vielleicht auch wundern, daß es zwischen den Runlevel S und s keinen ersichtlichen Unterschied gibt. Tatsächlich sind beide Optionen lediglich ein Alias für ein und den selben Runlevel.
Die runlevel S oder s bringen das System in den Single-user Modus, und benötigen keine /etc/inittab-Datei. Im Single-user-Modus wird auf /dev/console /sbin/sulogin aufgerufen.
Wenn das System in den Single-user Modus übergeht, liest init die ioctl(2)-Zustände der Konsole in /etc/ioctl.save. Existiert diese Datei nicht, dann initialisiert init die Leitung mit 9600 BAUD und mit CLOCAL-Einstellungen. Wenn init den Single-User-Modus verläßt, schreibt es die ioctl-Einstellungen in diese Datei, so daß diese Einträge bei der nächsten Single-User-Sitzung wiederverwendet werden können.
Wenn init das erste mal in einen Multi-User-Modus eintritt, führt er die boot- und bootwait-Einträge der Datei /etc/inittab aus, die es erlauben, daß die Dateisysteme gemountet werden können, bevor sich ein Benutzer einloggen kann. Danach werden alle die runlevel betreffenden Einträge ausgeführt.
Immer wenn init einen neuen Prozeß startet, schaut das Programm erst nach, ob die Datei /etc/initscript existiert. Wenn es sie gibt, benutzt init das Skript dieser Datei um den Prozeß zu starten.
Jedesmal, wenn ein Kindprozeß terminiert, hält init diese Tatsache und den Grund, weshalb der Kindprozeß gestorben ist, in den Dateien /var/run/utmp und /var/log/wtmp fest, falls diese Dateien existieren.
Wenn init sich nicht im Single-User Modus befindet, und ein Stromausfallsignal (SIGPWR) empfängt, liest es die Datei /etc/powerstatus. Anschließend wird ein Befehl anhand des Inhalts der Datei gestartet:
F(AIL) | Strom fällt aus, die USV versorgt den Rechner mit Strom. Die powerwait- und powerfail-Einträge werden ausgeführt. |
O(K) | Strom wurde wiederhergestellt, es werden die powerokwait-Einträge ausgeführt. |
L(OW) | Strom wird knapp und die USV geht auf dem Zahnfleisch. Die powerfailnow-Einträge werden ausgeführt. |
Die Verwendung von SIGPWR und /etc/powerstatus werden nicht empfohlen. Wenn etwas mit init interagieren möchte, sollte der Kontrollkanal /dev/initctl verwendet werden - siehe Quellcode des sysvinit-Pakets für mehr Dokumentation darüber.
Wenn init angewiesen wird den runlevel zu wechseln, wird das Warnsignal SIGTERM an alle Prozesse geschickt, die nicht in der Datei /etc/inittab für den neuen runlevel vorgesehen sind. Init wartet dann 5 Sekunden bevor er diese Prozesse mit dem kill-Signal SIGKILL gewaltsam terminiert. Achtung: init nimmt an, daß alle diese Prozesse (und deren Nachfahren) in derselben Prozeßgruppe verblieben sind, die init ursprünglich für sie erzeugt hat (siehe setpgrp(2)). Wenn irgendeiner dieser Prozesse seine Prozeßguppenzugehörigkeit geändert hat, wird er diese Signale nicht erhalten! Solche Prozesse müssen einzeln terminiert werden!
0,1,2,3,4,5 oder 6 | |
befehlen init in den angegebenen runlevel zu wechseln. | |
a, b, c | befehlen /sbin/init nur die Einträge der Datei /etc/inittab auszuführen, die den Runlevel a, b oder c haben. |
Q oder q | |
befehlen /sbin/telinit nocheinmal die Datei /etc/inittab einzulesen. | |
S oder s | |
befehlen /sbin/telinit in den Single-User-Modus zu schalten. | |
/sbin/telinit kann nur von Benutzern mit einer entsprechenden Berechtigung aufgerufen werden.
Das init-Programm überprüft, ob es als init oder telinit gestartet wurde, indem es auf seine Prozeß-ID schaut; die reelle Prozeß-ID von init ist immer 1. Von daher darf man einfach auch init anstelle von telinit verwenden oder eines Aliases.
PATH | Wird standarmäßig auf /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin gesetzt. |
INIT_VERSION | |
Wie der Name schon sagt. Nützlich, wenn ein Skript direkt von init ausgeführt werden soll. | |
RUNLEVEL | |
Der augenblickliche Runlevel des Systems. | |
PREVLEVEL | |
Der vorherige Runlevel (nützlich nach einer Änderung des Runlevels). | |
CONSOLE | |
Die System-KOnsole. Diese wird tatsächlich vom Kernel vererbt; wenn
sie jedoch nicht gesetzt ist, wird
init sie auf
/dev/console setzen als Voreinstellung.
| |
-s, S, single | |
Bootet im Single-user Modus. In diesem Modus wird zuerst die Datei /etc/inittab eingelesen; danach werden, noch bevor die Single-User-Shell gestartet wird, die Bootskripte der Datei /sbin/init.d/boot ausgeführt. | |
1,2,3,4 oder 5 | |
Weist init an, in welchen Runlevel gebootet werden soll. | |
-b, emergency | |
Gibt init die Anweisung direkt in den Single-User-Modus zu booten, ohne irgendwelche Startup-Skripte auszuführen. | |
-a, auto | |
Der LILO-Bootloader fügt das Wort an den Kernel. init ist in der Lage, es zu lesen. | |
-z xxx |
Das Argument zu
-z wird irgnoriert. Sie können es benutzen, um die Komandozeile etwas zu
verlängern, damit sie etwas mehr Platz auf dem Stack reserviert.
Init kann anschließend die Komandozeile derart modifizieren, daß
ps(1)
den aktuellen Runlevel anzeigt.
|
SIGHUP | |
Init sucht nach /etc/initrunlvl und /var/log/initrunlvl. Wenn eine dieser Dateien existiert und einen ASCII-Runlevel enthält, wechselt init in den neuen Runlevel. Dieses existiert nur für Abwärtskompatibilität! In normalen Fällen (wenn die Dateien nicht existieren) verhält sich init, als wenn telinit q ausgeführt wurde. | |
SIGUSR1 | |
Beim Emfang dieses Signals schließt init sein Kontroll-Fifo /dev/initctl und öffnet ihn wieder. Das ist sinnvoll für Boot-Skripte, wenn /dev neu gemountet wird. | |
SIGINT | |
Normalerweise sendet der Kernel dieses Signal an init, wenn CTRL-ALT-DEL gedrückt wurde. Es aktiviert die ctrlaltdel-Aktion. | |
SIGWINCH | |
Der Kernel sendet dieses Signal, wenn die
KeyboardSignal-Taste gedrückt wurde. Es aktiviert die
kbdrequest-Aktion.
| |
/etc/inittab /etc/initscript /dev/console /etc/ioctl.save /var/run/utmp /var/log/wtmp /dev/initctl
11 February 2000 | INIT (8) |
Hauptindex | Abschnitt 8 | English | 日本語 | Optionen |
Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.
“ | The wonderful thing about standards is that there are so many of them to choose from. | ” |
— Grace Murray Hopper |