24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

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

das Ende aller <strong>in</strong> der Sitzung erzeugten Prozesse gekommen. Man möchte gelegentlich<br />

jedoch Rechenprogramme zum Beispiel über Nacht laufen lassen,<br />

ohne die Sitzung während der ganzen Zeit fortzusetzen.<br />

Mit dem Vorkommando nohup(1) (no hang up) vor dem Programmaufruf<br />

erreicht man, daß das Programm bei Beendigung der Sitzung weiterläuft, es<br />

ist von der Sitzung abgekoppelt. Gleichzeitig muß man es natürlich im H<strong>in</strong>tergrund<br />

(&) laufen lassen, sonst läßt sich die Sitzung nicht vom Term<strong>in</strong>al<br />

aus beenden. Tatsächlich bewirkt das Vorkommando nohup(1), daß das Signal<br />

Nr. 1 (SIGHUP, hangup) ignoriert wird. Der Aufruf sieht so aus:<br />

nohup program &<br />

Für program ist der Name des Programmes e<strong>in</strong>zusetzen, das von der Sitzung<br />

abgekoppelt werden soll. Will man nohup auf Kommandofolgen oder<br />

Pipes anwenden, s<strong>in</strong>d sie <strong>in</strong> e<strong>in</strong> Shellscript zu verpacken. Die Ausgabe e<strong>in</strong>es<br />

nogehuppten Programmes geht automatisch <strong>in</strong> e<strong>in</strong> File namens nohup.out,<br />

falls sie nicht umgelenkt wird.<br />

Starten wir das Shellscript traptest mit nohup traptest & und beenden<br />

unsere Sitzung (zweimal exit geben), so können wir <strong>in</strong> e<strong>in</strong>er neuen<br />

Sitzung mit ps -ef feststellen, daß traptest <strong>in</strong> Form e<strong>in</strong>er Shell und e<strong>in</strong>es<br />

sleep-Prozesses weiterlebt. Besitzer und ursprüngliches Kontroll-Term<strong>in</strong>al<br />

werden angezeigt. Wir sollten die Shell möglichst bald mit kill(1) beenden.<br />

2.3.4 Priorität (nice)<br />

E<strong>in</strong> Dialog-Prozess sollte unverzüglich antworten, sonst nervt er. Bei e<strong>in</strong>em<br />

Rechenprozess, der nächtelang im H<strong>in</strong>tergrund läuft, kommt es dagegen auf<br />

e<strong>in</strong>e Stunde mehr oder weniger nicht an. Deshalb werden den Prozessen<br />

unterschiedliche Prioritäten e<strong>in</strong>geräumt. In der Schlange der auf Prozessorzeit<br />

wartenden Prozesse kommt e<strong>in</strong> Prozess hoher Priorität vor e<strong>in</strong>em Prozess<br />

niedriger Priorität, das heißt er kommt früher an die Reihe. Es bedeutet nicht,<br />

daß ihm mehr Prozessorzeit zugeteilt wird.<br />

Die Priorität e<strong>in</strong>es Prozesses, die man sich mit ps -elf oder ps -al anzeigen<br />

läßt, setzt sich aus zwei Teilen zusammen. Der Benutzer kann e<strong>in</strong>em<br />

Prozess beim Aufruf e<strong>in</strong>en nice-Faktor mitgeben. E<strong>in</strong> hoher Wert des Faktors<br />

führt zu e<strong>in</strong>er niedrigen Priorität. Den zweiten Teil berechnet das System unter<br />

dem Gesichtspunkt möglichst hoher Systemeffizienz. In e<strong>in</strong>em Echtzeit-<br />

System wäre e<strong>in</strong>e solche eigenmächtige Veränderung der Priorität untragbar.<br />

Die nice-Faktoren haben Werte von 0 bis 39. Der Standardwert e<strong>in</strong>es Vordergrundprozesses<br />

ist 20. Mit dem Aufruf:<br />

nice myprocess<br />

setzt man den nice-Faktor des Prozesses myprocess auf 30 herauf, se<strong>in</strong>e<br />

Priorität im System wird schlechter. Mittels:<br />

nice -19 myprocess

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!