24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

2.3 Daten <strong>in</strong> Bewegung: Prozesse 41<br />

trap "pr<strong>in</strong>t Abbruch durch Signal; exit" 15<br />

trap "pr<strong>in</strong>t Lass den Unfug!" 16<br />

while :<br />

do<br />

sleep 1<br />

done<br />

Programm 2.1 : Shellscript traptest mit Signalbehandlung<br />

Setzen Sie die Zugriffsrechte mit chmod 750 traptest. Wenn Sie das<br />

Shellscript mit traptest im Vordergrund starten, verschw<strong>in</strong>det der Prompt<br />

der Sitzungsshell, und Sie können nichts mehr e<strong>in</strong>geben, weil traptest unbegrenzt<br />

läuft und die Sitzungsshell auf das Ende von traptest wartet. Alle<strong>in</strong><br />

mit der Break-Taste (Signal 2) werden Sie traptest wieder los. Starten<br />

wir das Shellscript mit traptest & im H<strong>in</strong>tergrund, kommt der Prompt der<br />

Sitzungsshell sofort wieder, außerdem erfahren wir die PID der Shell, die<br />

traptest abarbeitet, die PID merken! Mit ps -f sehen wir uns unsere Prozesse<br />

an und f<strong>in</strong>den den sleep-Prozess aus dem Shellscript. Schicken wir nun<br />

mit kill -16 PID das Signal Nr. 16 an die zweite Shell, antwortet sie mit<br />

der Ausführung von pr<strong>in</strong>t Lass den Unfug!. Da das Shellscript im H<strong>in</strong>tergrund<br />

läuft, kommt möglicherweise vorher schon der Prompt der Sitzungsshell<br />

wieder. Schicken wir mit kill -15 PID das Signal Nr. 15, führt die<br />

zweite Shell die Kommandos pr<strong>in</strong>t Abbruch durch Signal; exit aus,<br />

das heißt sie verabschiedet sich. Auch hier kann der Sitzungsprompt schneller<br />

se<strong>in</strong>.<br />

Wenn e<strong>in</strong> Prozess gestorben ist, se<strong>in</strong>e Leiche aber noch <strong>in</strong> der Prozesstabelle<br />

herumliegt, wird er Zombie genannt. Zombies sollen nicht auf Dauer <strong>in</strong><br />

der Prozesstabelle auftauchen. Notfalls booten.<br />

Die weiteren Mittel zur Kommunikation zwischen Prozessen gehören <strong>in</strong><br />

die System- und Netzprogrammierung, sie gehen über den Rahmen dieses<br />

Buches h<strong>in</strong>aus. Wir erwähnen sie kurz, um Ihnen Stichwörter für die Suche<br />

<strong>in</strong> der Literatur an die Hand zu geben.<br />

2.3.6.5 Nachrichtenschlangen<br />

Nachrichtenschlangen (message queue) s<strong>in</strong>d ke<strong>in</strong>e erdgebundene Konkurrenz<br />

der Brieftauben, sondern im Systemkern gehaltene verkettete Listen mit<br />

jeweils e<strong>in</strong>em Identifier, deren Elemente kurze Nachrichten s<strong>in</strong>d, die durch<br />

Typ, Länge und Inhalt gekennzeichnet s<strong>in</strong>d. Auf die Listenelemente kann <strong>in</strong><br />

beliebiger Folge zugegriffen werden.<br />

2.3.6.6 Semaphore<br />

Semaphore 13 s<strong>in</strong>d Zählvariablen im System, die entweder nur die Werte 0<br />

und 1 oder Werte von 0 bis zu e<strong>in</strong>em systemabhängigen n annehmen. Mit<br />

13 In Cuxhaven steht e<strong>in</strong> großer Semaphor, der den auslaufenden Schiffen die W<strong>in</strong>dverhältnisse<br />

bei Borkum und Helgoland übermittelt.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!