Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Einleitung
TEIL I: Einstieg in Linux
2 Die Installation
3 Erste Schritte
4 Linux als Workstation für Einsteiger
TEIL II: Grundlagen
5 Kernel
6 Grundlagen aus Anwendersicht
TEIL III: Die Shell
7 Die Shell
8 Reguläre Ausdrücke
9 Konsolentools
10 Die Editoren
11 Shellskriptprogrammierung mit der bash
12 Die C-Shell
TEIL IV: System- & Netzwerkadministration
13 Benutzerverwaltung
14 Grundlegende Verwaltungsaufgaben
15 Netzwerkgrundlagen
16 Anwendersoftware für das Netzwerk
17 Netzwerkdienste
18 Mailserver unter Linux
19 LAMP & Co.
20 DNS-Server
21 Secure Shell
TEIL V: Die grafische Oberfläche
22 Die grafische Oberfläche
23 Window-Manager und Desktops
24 X11-Programme
25 Multimedia und Spiele
TEIL VI: Systeminterna
26 Prozesse und IPC
27 Bootstrap und Shutdown
28 Dateisysteme
29 Virtualisierung und Emulatoren
TEIL VII: Programmierung und Sicherheit
30 Softwareentwicklung
31 Crashkurs in C und Perl
32 Einführung in Computersicherheit
33 Netzwerksicherheit überwachen
TEIL VIII: Anhang
A Lösungen zu den einzelnen Aufgaben
B Kommandoreferenz
C X11-InputDevices
D MBR
E Buch-DVDs
F Glossar
G Literatur
Stichwort
Ihre Meinung?

Spacer
Linux von Johannes Plötner, Steffen Wendzel
Das umfassende Handbuch
Buch: Linux

Linux
Rheinwerk Computing
1282 S., 5., aktualisierte Auflage 2012, geb., mit 2 DVDs
49,90 Euro, ISBN 978-3-8362-1822-1
Pfeil 27 Bootstrap und Shutdown
Pfeil 27.1 Was ist der Bootstrap-Vorgang?
Pfeil 27.2 Hardware-Booten
Pfeil 27.3 Bootcode
Pfeil 27.3.1 Die Partitionstabelle
Pfeil 27.3.2 Ein Beispiel
Pfeil 27.4 Bootmanager
Pfeil 27.4.1 GRUB (alte Version)
Pfeil 27.4.2 GRUB Version 2
Pfeil 27.4.3 LILO
Pfeil 27.5 Startphase des Kernels
Pfeil 27.6 init
Pfeil 27.6.1 Linux und init
Pfeil 27.6.2 BSD und init
Pfeil 27.7 Upstart
Pfeil 27.8 getty
Pfeil 27.9 login
Pfeil 27.9.1 Shellstart
Pfeil 27.9.2 Beenden einer Terminal-Sitzung
Pfeil 27.10 System-Shutdown
Pfeil 27.10.1 halt, reboot und poweroff
Pfeil 27.10.2 shutdown
Pfeil 27.11 Zusammenfassung
Pfeil 27.12 Aufgaben

Rheinwerk Computing - Zum Seitenanfang

27.7 Upstart

Upstart wurde ursprünglich von und für Ubuntu entwickelt. Mittlerweile ist das Programm fester Bestandteil der aktuellen Ubuntu-Version, und auch andere Distributionen haben es bereits integriert. Gedacht ist Upstart als Ersatz für init, allerdings verwenden nach wie vor viele Distributionen letzteres System.

Was ist aber nun neu an Upstart? Das Besondere an ihm ist, dass der Start von Programmen (und damit auch von System- und Netzwerkdiensten) anhand von Events geschieht. Steckt man beispielsweise einen USB-Stick an den Rechner, so löst dies automatisch ein Event aus, das dazu führt, dass der USB-Stick gemountet wird. Die Entwickler haben dabei etwas weiter gedacht und sind zu dem Schluss gekommen, dass Upstart damit auch die Möglichkeit hat, den Cron-Dienst zu ersetzen (speziell durch die geplanten scheduled tasks). Außerdem kann Upstart Dienste neu starten, falls sie abgestürzt sind.

Upstart bezeichnet die einzelnen Skripte, die beim Eintreffen eines Events ausgeführt werden sollen, als »Jobs«. [Fn. Die hier gemeinten »Jobs« sind nicht mit den Jobs, die man aus der Shell kennt, zu verwechseln.] Sie werden im Verzeichnis /etc/event.d bzw. /etc/init abgelegt.

Benutzt man nicht gerade eine der wenigen Distributionen, die bereits Upstart benutzen, so darf man sich die Jobskripte mehr oder minder selbst schreiben. Es gibt zwar vorgefertigte Beispielskripte, doch diese müssen sehr wahrscheinlich recht aufwändig angepasst werden. [Fn. Das hängt sehr von der Distribution ab.]

Ein Beispiel

Der Aufbau der Skripte ist relativ simpel gehalten und soll im Folgenden an einem kommentierten Beispiel für den Cron-Dienst erläutert werden.

Listing 27.26 /etc/init/cron.conf

# cron – regular background program processing
# daemon
# cron is a standard UNIX program that runs
# user-specified programs at periodic scheduled times

description "regular background program processing daemon"

start on runlevel [2345]
stop on runlevel [!2345]

expect fork
respawn

exec cron

Sobald das System in den zweiten Runlevel (oder höher) wechselt wird dieses Skript ausgeführt (start on runlevel [2345]). Sobald diese hohen Runlevel verlassen werden, wird das jeweilige Skript so gestartet, dass alle gestarteten Tasks beendet werden (stop on runlevel [!2345]).

Mit expect fork wird signalisiert, dass sich der Prozess (also cron) forken wird. respawn bedeutet, dass ein Prozess, sollte er sich (etwa durch einen Speicherzugriffsfehler) beenden ohne explizit vom Administrator gestoppt worden zu sein, automatisch wieder neu gestartet wird. Die Dokumentation zu Upstart gibt hierfür das Beispiel von Netzwerkdiensten an, die nicht ausfallen sollen, und falls doch, automatisch neu gestartet werden sollen. Diese Situation trifft selbstverständlich auch auf Cron zu, denn dieser Dienst sollte zu jeder Zeit im Betrieb sein, um geplante Tasks auszuführen. Bräche Cron etwa gerade dann ab, wenn das nächtliche Backup gestartet werden sollte, und würde Cron dann nicht neu gestartet, so würde auch kein Backup erstellt.

Zuletzt wird der exec-Befehl ausgeführt. Er ruft cron auf – das Job-Skript ist damit abgearbeitet.

Betrachten wir nun noch ein weiteres Skript, nämlich ssh.conf:

Listing 27.27 /etc/init/ssh.conf

# ssh – OpenBSD Secure Shell server
#
# The OpenSSH server provides secure shell access to
# the system.

description "OpenSSH server"

start on filesystem or runlevel [2345]
stop on runlevel [!2345]

respawn
respawn limit 10 5
umask 022

pre-start script
test -x /usr/sbin/sshd || { stop; exit 0; }
test -e /etc/ssh/sshd_not_to_be_run && \
{ stop; exit 0; }
test -c /dev/null || { stop; exit 0; }

mkdir -p -m0755 /var/run/sshd
end script

# if you used to set SSHD_OPTS in /etc/default/ssh,
# you can change the 'exec' line here instead
exec /usr/sbin/sshd -D

SSH wird hier entweder dann gestartet, wenn ein Runlevel zwischen 2 und 5 eingeleitet wird, oder wenn das Root-Dateisystem verfügbar ist. Mit der Limitierung für respawn (die nur verwendet wird, wenn explizit, wie oben zu sehen, respawn in einer eigenen Zeile aktiviert wird), können Notfallkriterien für den Neustart von Prozessen gesetzt werden. Würde der obige Prozess zehnmal innerhalb von fünf Sekunden neu gestartet werden müssen, dann würde Upstart ihn nicht nicht noch einmal starten, weil er eventuell nicht mehr startbar ist und der permanente Neustart das System – im schlimmsten Falle – in die Knie zwänge. Die Standard-Umask (bereits aus vorherigen Kapitel bekannt) kann ebenfalls für den Dienst gesetzt werden. Der durch pre-start script und end script angegebene Bereich wird nur vor dem SSH-Start ausgeführt und dient dazu, einige Prüfungen (u. A. hinsichtlich der Existenz der Programmdatei des Dämons) durchzuführen. Neben pre-start können analog noch Anweisungen für post-start, pre-stop und post-stop festgelegt werden.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Linux Handbuch






 Linux Handbuch


Zum Katalog: Linux Server






 Linux Server


Zum Katalog: Raspberry Pi






 Raspberry Pi


Zum Katalog: Ubuntu 14.04 LTS






 Ubuntu 14.04 LTS


Zum Katalog: Roboter bauen mit Arduino






 Roboter bauen
 mit Arduino


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2012
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de