Prozeß-Manager ermöglicht es, die auf Ihrer Workstation ausgeführten Prozesse anzuzeigen und darauf Aktionen auszuführen. Hierzu brauchen Sie die Syntax für ps(1), truss(1), kill(1) und andere zeichenorientierte Befehle nicht zu kennen. Gegebenenfalls werden für die einzelnen Aktionen von Prozeß-Manager die entsprechenden UNIX-Befehle angegeben.
UNIX arbeitet mit Prozessen. Ihre Anmelde-Shell, Anwendungsprogramme, die gerade ausgeführte Bearbeitungssitzung und sogar das Programm ls zur Auflistung Ihrer Dateien laufen unter der Steuerung des Betriebssystems.
UNIX ermöglicht es, Operationen auf diesen Prozessen auszuführen. Sie können sich beispielsweise jederzeit alle gerade laufenden Programme anzeigen lassen, einzelne Programme beenden oder neu starten und Fehlersuchfunktionen auf fehlerhafte Prozesse ausführen.
Ein Prozeß ist fehlerhaft, wenn er seine Aufgabe nicht erwartungsgemäß durchführt. Dies äußert sich dann beispielsweise darin, daß ein Prozeß aufgrund eines Fehlers einen hohen Prozentsatz der verfügbaren Ressourcen verbraucht oder Konflikte mit anderen Prozessen verursacht. Mit dem Prozeß-Manager können Sie fehlerhafte Prozesse ermitteln, wenn eine der folgenden Situationen auftritt:
Die Leistung oder das Antwortverhalten der Workstation verschlechtert sich.
Ein Programm reagiert nicht mehr auf Benutzereingaben.
Ein Standard-Service wie beispielsweise Drucken, Dateiübertragung oder entferntes Anmelden reagiert nicht.
Die vom Prozeß-Manager angezeigte Liste der laufenden Prozesse enthält im Normalfall zwischen dreißig und fünfzig Prozesse. Darin die fehlerhaften Prozesse zu erkennen, ist für ungeübte Benutzer nicht immer einfach. Die folgenden Hinweise können Ihnen die Aufgabe erleichtern (ansonsten wenden Sie sich an Ihren Systemverwalter):
Stellen Sie mit der Leistungsanzeige fest (siehe Kapitel 18), ob einzelne Leistungsparameter wie beispielsweise die CPU-Belastung oder die Plattenauslastung ungewöhnliche Werte aufweisen. In diesem Fall können Sie fehlerhafte Prozesse mit dem Prozeß-Manager identifizieren.
Verwenden Sie den Prozeß-Manager, um folgende Prozesse zu erkennen:
Prozesse, die einen ungewöhnlich großen Prozentsatz der verfügbaren CPU- oder RAM-Ressourcen beanspruchen
"Verwaiste" Prozesse, deren übergeordneter Prozeß zu 1, d. h. init, zurückgekehrt ist (dies gilt nicht für sched, dtlogin cron und andere Prozesse, deren übergeordnete Prozeß-ID 1 sein sollte)
Vor längerer Zeit gestartete Prozesse, die eigentlich längst beendet sein müßten
Umfangreiche Prozesse, die anderen Benutzern gehören und die Leistung beeinträchtigen
Der Prozeß-Manager ermöglicht die Anzeige und den Zugriff auf Prozesse, die auf Ihrer Workstation ausgeführt werden.
Die Prozeßeinträge der Liste enthalten nützliche Informationen, die in der folgenden Tabelle erläutert werden:
Spaltenüberschrift | Bedeutung |
---|---|
ID | Prozeß-ID |
Name | Prozeßname |
Eigentümer | Name des Eigentümers |
CPU% | Prozentualer Anteil der vom Prozeß zuletzt beanspruchten CPU-Zeit im Verhältnis zur gesamten zu diesem Zeitpunkt verfügbaren CPU-Zeit |
RAM | Momentan von diesem Prozeß belegter Anteil am RAM-Speicher |
Swap | Gesamtgröße des virtuellen Speichers |
Start | Tatsächlicher Startzeitpunkt (oder Datum, wenn der Start mehr als einen Tag zurückliegt) |
Übergeordnet | Prozeß-ID des übergeordneten Prozesses, oder PPID |
Befehl | Tatsächlich ausgeführter UNIX-Befehl (abgeschnitten) |
Sie können die folgenden Aktionen ausführen, ohne die auf der Workstation laufenden Prozesse zu beeinträchtigen:
Anzeigen aller Prozesse oder nur derjenigen Prozesse, die eine angegebene Zeichenkette enthalten
Suchen von Prozessen, die eine angegebene Zeichenkette enthalten
Sortierte Anzeige nach einer der Spalten im Rollbereich
Ändern des Abtastintervalls und Kopieren oder Speichern der erfaßten Informationen
Klicken Sie auf die Steuerung "Prozeß suchen" im zusätzlichen Steuerbereich "Tools" des vorderen Steuerbereichs.
Das Hauptfenster des Prozeß-Managers wird geöffnet. Der Prozeß-Manager beginnt sofort mit dem Abtasten der Workstation und zeigt alle aktuell ausgeführten Prozesse an.
Geben Sie im Feld "Filter" des Prozeß-Manager-Fensters den gewünschten Filtertext ein.
Verwenden Sie als Filtertext eine Zeichenkette, die allen Prozeßeinträgen der Teilmenge oder Gruppen von Prozessen gemeinsam ist, die Sie sich anzeigen lassen möchten. Das Beispiel in Abbildung 17-1 zeigt die Anzeige aller Prozesse, die sich auf die Anwendung Audio beziehen.
Drücken Sie die Eingabetaste.
Der Prozeß-Manager aktualisiert die Anzeige der Prozesse im Rollbereich, so daß dieser nur noch diejenigen Einträge enthält, die dem Filtertext entsprechen.
Um wieder alle Prozesse anzuzeigen, löschen Sie das Feld "Filter" und drücken danach die Eingabetaste.
Geben Sie den Suchtext im Dropdown-Fenster "Suchen" ein, oder wählen Sie aus dieser Dropdown-Liste einen zuvor verwendeten Suchtext aus.
Verwenden Sie als Suchtext eine Zeichenkette, die allen anzuzeigenden Prozeßeinträgen gemeinsam ist.
Drücken Sie die Eingabetaste, um das erste Vorkommen des Suchtextes unterhalb der aktuellen Cursorposition hervorzuheben.
Der Text kann sich in jedem der Felder des Prozeßeintrags befinden.
Durch erneutes Drücken der Eingabetaste wird das jeweils nächste Vorkommen hervorgehoben.
Wenn Sie den gewünschten Prozeßeintrag gefunden haben, löschen Sie das Feld "Suchen".
Wenn Sie am Ende des Rollbereichs angelangt sind, wird der Vorgang nicht am Beginn der Liste fortgesetzt. Um sicherzustellen, daß Sie wirklich alle Prozesse durchsuchen, müssen Sie daher den ersten Prozeßeintrag in der Liste auswählen, bevor Sie den Suchtext im Feld "Suchen" eingeben.
Standardmäßig erfolgt die Anzeige der Prozesse im Prozeß-Manager in der Reihenfolge ihrer CPU-Belastung, beginnend mit der höchsten Belastung. Sie erkennen dies daran, daß die Überschrift der Spalte CPU-Belastung (CPU%) gedrückt ist, die anderen Spaltenüberschriften dagegen nicht.
Wenn Sie die Anzeige nach den Werten einer anderen Spalte sortieren möchten, klicken Sie auf die entsprechende Spaltenüberschrift oder wählen Sie den Spaltennamen im Menü "Ansicht" aus.
Der Prozeß-Manager aktualisiert dann die Anzeige entsprechend den neuen Kriterien. Die nachstehende Tabelle enthält die Standard-Sortierfolge für jede Spalte.
Tabelle 17-1 Standardmäßige Sortierfolge für die Anzeige der ProzeßeinträgeAusgewählte Spaltenüberschrift | Methode |
---|---|
ID | Numerisch nach Prozeß-ID in aufsteigender Reihenfolge |
Name | Alphabetisch nach Prozeßname |
Eigentümer | Alphabetisch nach Eigentümername |
CPU% | Numerisch nach CPU-Belastung in absteigender Reihenfolge |
RAM | Numerisch nach RAM-Belastung in absteigender Reihenfolge |
Swap | Numerisch nach Nutzung des Auslagerungsbereiches in absteigender Reihenfolge |
Start | Chronologisch nach tatsächlicher Startzeit in absteigender Reihenfolge |
Übergeordnet | Numerisch nach Prozeß-ID des übergeordneten Prozesses in absteigender Reihenfolge |
Befehl | Alphanumerisch nach vollständigem Pfadnamen in absteigender Reihenfolge (Sonderzeichen wie "/" haben niedrigere Sortierwerte als Buchstaben) |
(Optional) Um die Sortierfolge für eine dieser Spalten umzukehren (z. B. nach RAM-Verwendung in aufsteigender Reihenfolge), klicken Sie auf die gedrückte Spaltenüberschrift-Schaltfläche.
Der Bereich der Spaltenüberschrift wird dann schwarz dargestellt, und die Anzeige erfolgt in umgekehrter Sortierfolge.
Standardmäßig erfolgt die Abfrage der Workstation und die Aktualisierung der Anzeige im Prozeß-Manager alle 30 Sekunden.
Um die ständige Abtastung zu deaktivieren bzw. zu aktivieren, wählen Sie im Menü "Abtasten" den Befehl "Stop" bzw. "Start".
Wenn die fortlaufende Abtastung aktiviert ist, steht im Menü "Abtasten" der Befehl "Stop" zur Verfügung. Andernfalls enthält das Menü den Befehl "Start".
Um das Intervall zwischen den Abtastvorgängen zu ändern, geben Sie im Feld "Sample Every" die Anzahl der Sekunden ein (der Maximalwert beträgt 604800, d.h. 14 Tage).
Drücken Sie die Eingabetaste, damit die neue Intervall-Einstellung wirksam wird.
Um sofort abzutasten, wählen Sie "Jetzt" aus dem Menü "Abtasten".
Daraufhin führt der Prozeß-Manager die Abtastung sofort durch und aktualisiert die Anzeige.
Sie können einen oder mehrere der angezeigten Prozeßeinträge auswählen, kopieren und danach als Text in anderen Anwendungen einfügen.
Darüber hinaus können Sie die erfaßten Daten mit einer der folgenden Funktionen auch als Datei speichern:
Erstellen einer neuen Datei nur für die aktuell abgetasteten Werte
Einrichten einer Protokolldatei, an die alle neuen Werte angehängt werden
Wählen Sie "Sichern als" aus dem Menü "Abtasten".
Das Dialogfenster "Sichern als" des Prozeß-Managers wird geöffnet.
Geben Sie den Namen und die Position für die neue Datei ein, und klicken Sie auf "OK".
Der Prozeß-Manager erstellt eine Textdatei mit den Prozeßeinträgen der aktuellen Anzeige.
Wählen Sie "Protokolldatei" aus dem Menü "Abtasten".
Das Dialogfenster "Protokolldatei" des Prozeß-Managers wird geöffnet.
Geben Sie den Namen und die Position für die neue Datei ein, und klicken Sie auf "OK".
Der Prozeß-Manager erstellt die Datei und hängt alle neuen Abtastwerte (mit Kopfinformationen) daran an.
Die Protokollierung in diese Datei wird so lange fortgesetzt, bis Sie entweder den Prozeß-Manager beenden oder "Protokollierung beenden" aus dem Menü "Abtasten" wählen.
Wenn Sie in der Liste einen Prozeß identifiziert und ausgewählt haben, können Sie darauf die folgenden Aktionen ausführen:
Ein kill-Signal senden, um den Prozeß zu beenden oder eine Antwort anzufordern
Im Adressen-Manager nach weiteren Informationen über den Eigentümer des Prozesses suchen
Systemaufrufe verfolgen, untergeordnete Prozesse anzeigen oder ein Fehlersuchprogramm ausführen
Den Stapel oder die Vorgänger des Prozesses anzeigen
Wenden Sie sich an Ihren Systemverwalter, wenn Sie sich über die Folgen einer dieser Prozeduren nicht im klaren sind.
Der kill-Befehl in UNIX ermöglicht Ihnen, ein Signal an einen Prozeß zu senden. Ein Signal ist eine Nachricht, die den Prozeß unterbricht und zu einer Antwort auffordert. Falls der Prozeß entsprechend programmiert ist, beantwortet er die Signale, andernfalls wird er beendet. Es stehen 42 verschiedene Signale zur Verfügung, deren Bedeutung auf der Man Page signal(5) definiert wird. Die am häufigsten verwendeten Signale sind in der nachstehenden Tabelle mit ihren Nummern/Namen und ihrer Bedeutung zusammengestellt.
Signal-Nr. | Signalname | Bedeutung |
---|---|---|
1 | HUP | Hangup (häufig vor dem Abmelden verwendet) |
2 | INT | Interrupt (identisch mit dem Drücken von STRG+C in einer Terminalsitzung) |
9 | KILL |
Kill (beendet den Prozeß ohne Bereinigung) Funktioniert nur, wenn es vom Eigentümer des Prozesses oder vom Superuser (root) gesendet wird Das Programm kann auf dieses Signal nicht antworten, sondern muß sich beenden |
15 | TERM |
Kill (Geordnetes Beenden des Prozesses mit vorheriger Bereinigung) Funktioniert nur, wenn es vom Eigentümer des Prozesses oder vom Superuser (root) gesendet wird |
Das Menü "Abbrechen" ermöglicht den schnellen Abbruch eines Prozesses durch Senden eines kill-Signals (9). Das Menü "Signal" bietet Ihnen eine umfassendere Kontrolle des durch den Befehl kill(1) gesendeten Signals. Damit erhalten Sie beispielsweise die Möglichkeit, das Signal INT oder HUP usw. zu senden.
Senden Sie nur dann ein Signal an einen Prozeß, wenn Sie alle Folgen genau kennen. Wenn Sie beispielsweise die Login-Shell auswählen und ihr ein kill-Signal senden, werden sie plötzlich abgemeldet. Weitere Informationen über Prozesse und Job-Steuerung erhalten Sie von Ihrem Systemverwalter oder in den nachstehenden Dokumenten:
Man Pages für Signal(5), ps(1) und Signal( 3C)
Solaris Handbuch für Fortgeschrittene Benutzer (Sun Microsystems)
Wählen Sie einen Prozeßeintrag im Rollbereich des Prozeß-Managers.
Wählen Sie "Abbrechen" aus dem Menü "Prozeß".
Prozeß-Manager bricht den Prozeß (und alle untergeordneten Prozesse) ab, sofern Sie über die entsprechenden Zugriffsrechte verfügen. Andernfalls wird eine Fehlermeldung angezeigt. In einzelnen Fällen kann es einige Sekunden dauern, bis der Prozeß beendet wird. Sie können erkennen, ob ein Prozeß abgebrochen wurde, wenn er bei der nächsten Aktualisierung der Anzeige im Prozeß-Manager nicht in der Liste der Prozesse enthalten ist.
Der entsprechende UNIX-Befehl lautet:
kill -9 PID, wobei PID die Prozeß-ID des gewählten Prozesses ist.
Sie können den Befehl, der bei der Auswahl des Menüs "Abbrechen" ausgeführt wird, auch umdefinieren, indem Sie die Zuordnung der Aktion "Kill" in der folgenden Datei ändern:
/usr/dt/appconfig/types/C/sdtprocess.dt
Wählen Sie einen Prozeßeintrag im Rollbereich des Prozeß-Managers.
Wählen Sie "Signal" aus dem Menü "Prozeß".
Prozeß-Manager öffnet ein Dialogfenster, in dem Sie zur Angabe des Signals aufgefordert werden. Sie müssen mindestens eines der 42 auf der Man Page signal(5) definierten Signale eingeben.
Geben Sie die entsprechende Signalnummer ein, und klicken Sie auf "OK".
Prozeß-Manager sendet den Signalbefehl an den Prozeß und schließt das Dialogfenster. Es wird keine Erfolgsmeldung ausgegeben. In der Regel werden die untergeordneten Prozesse des abgebrochenen Prozesses ebenfalls abgebrochen.
Der entsprechende UNIX-Befehl lautet: kill -signum_name PID
Hierbei ist -signum_name die Signalnummer oder der Signalname und PID die Prozeß-ID des gewählten Prozesses.
Wählen Sie einen Prozeßeintrag im Rollbereich des Prozeß-Managers.
Wählen Sie "Eigentümer suchen" aus dem Menü "Prozeß".
Prozeß-Manager öffnet den Adressen-Manager und beauftragt diesen mit der Suche der Systemkarten für den Systembenutzernamen des gewählten Prozesses. Weitere Informationen über den Adressen-Manager finden Sie in Kapitel 16.
Wählen Sie einen Prozeßeintrag im Rollbereich des Prozeß-Managers.
Wählen Sie "Verlauf anzeigen" aus dem Menü "Prozeß".
Prozeß-Manager zeigt die Prozeß-Baumstruktur des angegebenen Prozesses in einem Fenster an. Untergeordnete Prozesse werden gegenüber den entsprechenden übergeordneten Prozessen eingerückt dargestellt.
Der entsprechende UNIX-Befehl lautet:
/usr/proc/bin/ptree PID
Hierbei ist PID die Prozeß-ID des gewählten Prozesses.
Wenn ein UNIX-Prozeß einen oder mehrere abhängige Prozesse auslöst, werden diese als abhängige Prozesse oder Kindsprozesse bezeichnet. Unter- und übergeordnete Prozesse besitzen dieselbe Benutzer-ID.
Wählen Sie einen Prozeßeintrag im Rollbereich des Prozeß-Managers.
Wählen Sie "Untergeordnete Prozesse verfolgen" aus dem Menü "Prozeß".
Prozeß-Manager zeigt einen Eintrag zur Erstellung aller neuen untergeordneten Prozesse (bzw. deren untergeordneten Prozesse usw.) für den gewählten Prozeß an.
Zurückgegebene Fehler werden mit den auf der Man Page Intro(2) beschriebenen Fehlercodenamen angezeigt.
Der entsprechende UNIX lautet:
truss -fa -texec,fork -s¦CLD,ALRM -p PID
Hierbei ist PID die Prozeß-ID des gewählten Prozesses.
Ein Prozeß führt während seiner Ausführung Aufrufe auf den UNIX-Systemkern oder Systemaufrufe aus. Unter Umständen möchten Sie diese Systemaufrufe nachverfolgen, um Aufschluß über ihren Einfluß auf andere Prozesse zu erhalten.
Wählen Sie einen Prozeßeintrag im Rollbereich des Prozeß-Managers.
Wählen Sie "Systemaufrufe verfolgen" aus dem Menü "Prozeß".
Prozeß-Manager öffnet ein Dialogfenster, in dem Sie zur Angabe der optionalen Argumente aufgefordert werden.
Klicken Sie auf "OK".
Jede Zeile des Ablaufprotokolls enthält entweder den Fehler- oder Signalnamen oder den Namen des Systemaufrufs mit seinen Argumenten und Rückgabewerten. Weitere Informationen finden Sie auf der Man Page truss(1).
Der entsprechende UNIX-Befehl lautet:
truss -p PID
Hierbei ist PID die Prozeß-ID des gewählten Prozesses.
Wählen Sie einen Prozeßeintrag im Rollbereich des Prozeß-Managers.
Wählen Sie "Stapel anzeigen" aus dem Menü "Prozeß".
Prozeß-Manager öffnet ein Fenster, in dem das Stapelprotokoll für den gewählten Prozeß in hexadezimaler und symbolischer Form angezeigt wird.
Der entsprechende UNIX lautet:
/usr/proc/bin/pstack PID
Hierbei ist PID die Prozeß-ID des gewählten Prozesses.
Anwendungsentwickler verwenden manchmal Fehlersuchprogramme wie Sun Workshop, um einen fehlerhaften Prozeß zu untersuchen. Der Befehl "Fehlersuche" des Menüs "Prozeß" ruft Ihr bevorzugtes Fehlersuchprogramm auf.
Beseitigen Sie Fehler mit Ihrem bevorzugten Fehlersuchprogramm.
Der entsprechende UNIX-Befehl lautet:
workshop -d befehl
Hierbei ist workshop der Name des Fehlersuchprogramms und befehl der Befehl, der zur Übergabe der Prozeß-ID an das Fehlersuchprogramm benötigt wird.