<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Upstart</id>
	<title>Upstart - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Upstart"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Upstart&amp;action=history"/>
	<updated>2026-05-15T22:06:19Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Upstart&amp;diff=10693&amp;oldid=prev</id>
		<title>Thomas am 5. September 2016 um 09:19 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Upstart&amp;diff=10693&amp;oldid=prev"/>
		<updated>2016-09-05T09:19:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 5. September 2016, 09:19 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l213&quot; &gt;Zeile 213:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 213:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Startet die Terminalemulatoren der anderen Textkonsolen&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Startet die Terminalemulatoren der anderen Textkonsolen&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=bonding-problem=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[[nfs-bonding-problem]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[[libvirt-bin-problem]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-10689:rev-10693 --&gt;
&lt;/table&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Upstart&amp;diff=10689&amp;oldid=prev</id>
		<title>Thomas: Die Seite wurde neu angelegt: „ Ubuntu setzt schon sein Jahren auf das Upstart Init System es ist zwar noch nicht komplett umgestellt, aber der Weg ist richtig.    ==Ziel vs. Ereignis== Upst…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Upstart&amp;diff=10689&amp;oldid=prev"/>
		<updated>2016-09-05T09:15:25Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „ Ubuntu setzt schon sein Jahren auf das Upstart Init System es ist zwar noch nicht komplett umgestellt, aber der Weg ist richtig.    ==Ziel vs. Ereignis== Upst…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
Ubuntu setzt schon sein Jahren auf das Upstart Init System es ist zwar noch nicht komplett umgestellt, aber der Weg ist richtig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ziel vs. Ereignis==&lt;br /&gt;
Upstart (http://upstart.ubuntu.com) ist der Name eines völlig neuartigen Konzeptes, welches eine völlige Abkehr von init darstellen soll. Die bisherigen Konzepte haben eines gemeinsam: sie sind zielorientiert. Dies bedeutet, dass vorher festgelegt wird, welche Dienste am Ende des Startvorganges laufen sollen. Die Abhängigkeiten werden vorher in einer sinnvollen Reihenfolge definiert. Upstart hingegen soll ereignisorientiert sein. Bei dieser Vorgehensweise lauern die Dienste im Hintergrund und starten erst dann, wenn alle Vorbedingungen erfüllt sind. Dies sind die sogenannten »Events«. Beispiel: Wenn Sie einen USB-Stick an den Rechner stecken, löst dies ein Event aus, welches dazu führt, dass der USB-Stick gemountet wird.&lt;br /&gt;
&lt;br /&gt;
Die Events werden in die folgenden drei Klassen eingeteilt:&lt;br /&gt;
&lt;br /&gt;
*Edge-Events Dies sind einfache Events wie »Benutzer löst durch Tastendruck eine bestimmte Funktion aus«.&lt;br /&gt;
*Temporale Events Dies sind zeitgesteuerte Ereignisse.&lt;br /&gt;
*Level-Events Diese Events erhalten einen zusätzlichen Parameter, beispielsweise den Zustand einer bestimmten Hardware. Dienste starten hierbei bei jedem beliebigen Wert oder einem Schwellenwert des Parameters.&lt;br /&gt;
    	   &lt;br /&gt;
&lt;br /&gt;
Upstart soll nicht nur das Booten des Sytems beschleunigen, sondern auch das dynamische Verwalten von Diensten. Dies betrifft folgende Bereiche, die mit Upstart vereinheitlicht und verwaltet werden sollen:&lt;br /&gt;
&lt;br /&gt;
* Viele Dienste hängen vom Funktionieren bestimmter Hardware ab. So können manche Dienste erst gestartet werden, wenn die dazu nötige Netzwerkverbindung ad hoc aufgebaut wurde.&lt;br /&gt;
* Die Dynamik der Dienste-Verwaltung betrifft auch zeitabhängige Prozesse. So gibt es Services wie Cron oder den Anacron, die bestimmte Prozesse zu festgelegten Zeitpunkten starten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Entwicklung steht noch am Anfang, aber die erste Implementation dieses neuen Konzeptes hat 2006 Einzug in die regulären Ubuntu-Versionen und inzwischen auch in die testing-Version von Debian gehalten. Um den reibungslosen Betrieb der Distributionen nicht zu gefährden, erfolgen große Teile der Initialisierung mithilfe des Kompatibilitätsscriptes &amp;lt;I&amp;gt;/etc/init.d/rc&amp;lt;/I&amp;gt; durch die herkömmlichen init-Dateien. Die Ausweitung auf Teile des Systemstarts erfolgt kontinuierlich in neueren Ubuntu-Versionen, wobei temporale Events noch nicht integriert sind&lt;br /&gt;
&lt;br /&gt;
==Jobs==&lt;br /&gt;
Die einzelnen Skripte, die beim Eintreffen eines Events ausgeführt werden sollen, werden von Upstart als Jobs bezeichnet. Diese Skripte werden im Verzeichnis /etc/event.d gesammelt. Wie bei dem init-Konzept wird auch bei Upstart das Programm /sbin/init als erster Prozess vom Kernel gestartet. Die bekannte Datei /etc/inittab gibt es bei Upstart nicht mehr. Stattdessen werden die Jobs aus dem Verzeichnis /etc/event.d vom Upstart-Init gelesen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Liste der Jobs in /etc/event.d====&lt;br /&gt;
 root@zero:/etc/event.d# ls&lt;br /&gt;
 control-alt-delete  last-good-boot  logd  rc0  rc1  rc2  rc3  rc4  rc5  rc6  rc-default  rcS  rcS-sulogin  sulogin  tty1  tty2  tty3  tty4  tty5  tty6&lt;br /&gt;
&lt;br /&gt;
*defaultrunlevel&lt;br /&gt;
 root@zero:/etc/event.d# cat rc-default &lt;br /&gt;
 start on stopped rcS&lt;br /&gt;
 &lt;br /&gt;
 script&lt;br /&gt;
 	runlevel --reboot || true&lt;br /&gt;
  	if grep -q -w -- &amp;quot;-s\|single\|S&amp;quot; /proc/cmdline; then&lt;br /&gt;
 	    telinit S&lt;br /&gt;
 	elif [ -r /etc/inittab ]; then&lt;br /&gt;
 	    RL=&amp;quot;$(sed -n -e &amp;quot;/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}&amp;quot; /etc/inittab || true)&amp;quot;&lt;br /&gt;
 	    if [ -n &amp;quot;$RL&amp;quot; ]; then&lt;br /&gt;
 		telinit $RL&lt;br /&gt;
 	    else&lt;br /&gt;
 		telinit 2&lt;br /&gt;
 	    fi&lt;br /&gt;
 	else&lt;br /&gt;
 	    telinit 2&lt;br /&gt;
 	fi&lt;br /&gt;
 end script&lt;br /&gt;
&lt;br /&gt;
*runlevel 2 &lt;br /&gt;
&lt;br /&gt;
 root@zero:/etc/event.d# cat rc2 &lt;br /&gt;
 start on runlevel 2&lt;br /&gt;
 &lt;br /&gt;
 stop on runlevel [!2] &lt;br /&gt;
 &lt;br /&gt;
 console output&lt;br /&gt;
 script&lt;br /&gt;
 	set $(runlevel --set 2 || true)&lt;br /&gt;
 	if [ &amp;quot;$1&amp;quot; != &amp;quot;unknown&amp;quot; ]; then&lt;br /&gt;
 	    PREVLEVEL=$1&lt;br /&gt;
 	    RUNLEVEL=$2&lt;br /&gt;
 	    export PREVLEVEL RUNLEVEL&lt;br /&gt;
 	fi&lt;br /&gt;
 &lt;br /&gt;
 	exec /etc/init.d/rc 2&lt;br /&gt;
 end script&lt;br /&gt;
&lt;br /&gt;
*tty1&lt;br /&gt;
 root@zero:/etc/event.d# cat tty1 &lt;br /&gt;
 start on stopped rc2&lt;br /&gt;
 start on stopped rc3&lt;br /&gt;
 start on stopped rc4&lt;br /&gt;
 start on stopped rc5&lt;br /&gt;
 &lt;br /&gt;
 stop on runlevel 0&lt;br /&gt;
 stop on runlevel 1&lt;br /&gt;
 stop on runlevel 6&lt;br /&gt;
 &lt;br /&gt;
 respawn&lt;br /&gt;
 exec /sbin/getty 38400 tty1&lt;br /&gt;
&lt;br /&gt;
*control-alt-delete&lt;br /&gt;
 root@zero:/etc/event.d# cat control-alt-delete &lt;br /&gt;
 start on control-alt-delete&lt;br /&gt;
 exec /sbin/shutdown -r now &amp;quot;Control-Alt-Delete pressed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Ändern des Verhaltens von Strg-Alt-Entf===&lt;br /&gt;
Editieren der Datei /etc/event.d/control-alt-delete . Die Datei beginnend mit exec bestimmt, was upstart startet,&lt;br /&gt;
wenn diese Tastenkombination gedrückt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==initctl==&lt;br /&gt;
===list===&lt;br /&gt;
Anzeigen der Jobs&lt;br /&gt;
 root@zero:~# initctl list&lt;br /&gt;
 control-alt-delete (stop) waiting&lt;br /&gt;
 last-good-boot (stop) waiting&lt;br /&gt;
 logd (stop) waiting&lt;br /&gt;
 rc-default (stop) waiting&lt;br /&gt;
 rc0 (stop) waiting&lt;br /&gt;
 rc1 (stop) waiting&lt;br /&gt;
 rc2 (stop) waiting&lt;br /&gt;
 rc3 (stop) waiting&lt;br /&gt;
 rc4 (stop) waiting&lt;br /&gt;
 rc5 (stop) waiting&lt;br /&gt;
 rc6 (stop) waiting&lt;br /&gt;
 rcS (stop) waiting&lt;br /&gt;
 rcS-sulogin (stop) waiting&lt;br /&gt;
 sulogin (stop) waiting&lt;br /&gt;
 tty1 (start) running, process 3128&lt;br /&gt;
 tty2 (start) running, process 2153&lt;br /&gt;
 tty3 (start) running, process 2154&lt;br /&gt;
 tty4 (start) running, process 2143&lt;br /&gt;
 tty5 (start) running, process 2146&lt;br /&gt;
 tty6 (start) running, process 2155&lt;br /&gt;
&lt;br /&gt;
===emit===&lt;br /&gt;
Ereignis mit emit auslösen&lt;br /&gt;
*Datei mit event erstellen &lt;br /&gt;
 root@zero:/etc/event.d# cat xinux &lt;br /&gt;
 start on hund-haut-ab&lt;br /&gt;
 exec echo &amp;quot;hund ist abgehauen&amp;quot; &amp;gt;&amp;gt; /tmp/hund &lt;br /&gt;
*Event auslösen&lt;br /&gt;
 root@zero:/etc/event.d# initctl emit hund-haut-ab&lt;br /&gt;
 hund-haut-ab&lt;br /&gt;
 xinux (start) waiting&lt;br /&gt;
 xinux (start) starting&lt;br /&gt;
 xinux (start) pre-start&lt;br /&gt;
 xinux (start) spawned, process 11249&lt;br /&gt;
 xinux (start) post-start, (main) process 11249&lt;br /&gt;
 xinux (start) running, process 11249&lt;br /&gt;
 xinux (stop) running&lt;br /&gt;
 xinux (stop) stopping&lt;br /&gt;
 xinux (stop) killed&lt;br /&gt;
 xinux (stop) post-stop&lt;br /&gt;
 xinux (stop) waiting&lt;br /&gt;
*Ergebnis&lt;br /&gt;
 root@zero:~# cat /tmp/hund &lt;br /&gt;
 hund ist abgehauen&lt;br /&gt;
&lt;br /&gt;
===stop===&lt;br /&gt;
Stoppen eines Jobs&lt;br /&gt;
 root@zero:/etc/event.d# initctl stop tty1&lt;br /&gt;
 tty1 (stop) running, process 11020&lt;br /&gt;
 tty1 (stop) pre-stop, (main) process 11020&lt;br /&gt;
 tty1 (stop) stopping, process 11020&lt;br /&gt;
 tty1 (stop) killed, process 11020&lt;br /&gt;
 tty1 (stop) post-stop&lt;br /&gt;
 tty1 (stop) waiting&lt;br /&gt;
&lt;br /&gt;
===status===&lt;br /&gt;
Status eines Jobs&lt;br /&gt;
 root@zero:/etc/event.d# initctl status tty1&lt;br /&gt;
 tty1 (stop) waiting&lt;br /&gt;
&lt;br /&gt;
===start===&lt;br /&gt;
Starten eines Jobs&lt;br /&gt;
 root@zero:/etc/event.d# initctl start tty1&lt;br /&gt;
 tty1 (start) waiting&lt;br /&gt;
 tty1 (start) starting&lt;br /&gt;
 tty1 (start) pre-start&lt;br /&gt;
 tty1 (start) spawned, process 11262&lt;br /&gt;
 tty1 (start) post-start, (main) process 11262&lt;br /&gt;
 tty1 (start) running, process 11262&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Kompatibilität===&lt;br /&gt;
&lt;br /&gt;
Zurzeit werden lediglich die Terminalemulatoren der Textkonsolen von Upstart gestartet. Alle anderen Aufgaben werden durch das Kompatibilitätsscript /etc/init.d/rc erledigt. Dieses Skript wird durch die Upstart-Konfigurationsdateien rc0 bis rc6 sowie rcS gestartet und funktioniert wie gehabt. Das heißt, es führt alle Start- und Stopp-Skripte in den Ordnern /etc/rc0...6, S aus. Mittelfristig werden diese Verzeichnisse aber verschwinden und /etc/event.d alle Aufgaben übernehmen.&lt;br /&gt;
===upstart-Skripte===&lt;br /&gt;
{| Border=1 Cellpadding=2&lt;br /&gt;
|'''Skript'''&lt;br /&gt;
|'''Ereignis'''&lt;br /&gt;
|'''Funktion'''&lt;br /&gt;
|-&lt;br /&gt;
|control-alt-delete&lt;br /&gt;
|control-alt-delete&lt;br /&gt;
|Neustart des Systems mit Strg+Alt+Entf&lt;br /&gt;
|-&lt;br /&gt;
|logd&lt;br /&gt;
|&lt;br /&gt;
|Protokollierung&lt;br /&gt;
|-&lt;br /&gt;
|rc0-rc6&lt;br /&gt;
|runlevel n&lt;br /&gt;
|Wechselt in den Runlevel n&lt;br /&gt;
|-&lt;br /&gt;
|rc-default&lt;br /&gt;
|stopped rcS&lt;br /&gt;
|Setzt den Standard-Runlevel 2&lt;br /&gt;
|-&lt;br /&gt;
|rcS&lt;br /&gt;
|startup&lt;br /&gt;
|Systeminitialisierung&lt;br /&gt;
|-&lt;br /&gt;
|rcS-sulogin&lt;br /&gt;
|runlevel S&lt;br /&gt;
|rcS im Single-User-Betrieb (/etc/nologin)&lt;br /&gt;
|-&lt;br /&gt;
|sulogin&lt;br /&gt;
|&lt;br /&gt;
|Rescue Modus (läuft, wenn keine anderen Jobs ausgeführt werden)&lt;br /&gt;
|-&lt;br /&gt;
|tty1&lt;br /&gt;
|runlevel 2-5&lt;br /&gt;
|Start der Terminalemulatoren in Textkonsole 1&lt;br /&gt;
|-&lt;br /&gt;
|tty2-tty6&lt;br /&gt;
|runlevel 2-3&lt;br /&gt;
|Startet die Terminalemulatoren der anderen Textkonsolen&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
</feed>