CDE Benutzerhandbuch

Ausführen von Aktionen auf einen ausgewählten Prozeß

Wenn Sie in der Liste einen Prozeß identifiziert und ausgewählt haben, können Sie darauf die folgenden Aktionen ausführen:


Achtung - Achtung -

Wenden Sie sich an Ihren Systemverwalter, wenn Sie sich über die Folgen einer dieser Prozeduren nicht im klaren sind.


Senden von Abbruchsignalen an einen Prozeß

Der kill-Befehl in UNIX ermöglicht es 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 beschrieben ist. 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ß beendet werden 

 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.


Achtung - Achtung -

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 Auftragssteuerung erhalten Sie von Ihrem Systemverwalter oder in den nachstehenden Dokumenten:


So brechen Sie einen Prozeß ab (sofortiger Abbruch):

  1. Wählen Sie einen Prozeßeintrag im Bildlaufbereich des Prozeß-Managers aus.

  2. 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.


    Tipp -

    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


So senden Sie ein Signal an einen Prozeß:

  1. Wählen Sie einen Prozeßeintrag im Bildlaufbereich des Prozeß-Managers aus.

  2. 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.

  3. 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.


Tipp -

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.


So ermitteln Sie den Eigentümer eines Prozesses:

  1. Wählen Sie einen Prozeßeintrag im Bildlaufbereich des Prozeß-Managers aus.

  2. 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.

So zeigen Sie die Vorgänger eines Prozesses an:

  1. Wählen Sie einen Prozeßeintrag im Bildlaufbereich des Prozeß-Managers aus.

  2. 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.

    Graphic

Tipp -

Der entsprechende UNIX-Befehl lautet:

/usr/proc/bin/ptree PID

Hierbei ist PID die Prozeß-ID des gewählten Prozesses.


So verfolgen Sie einen untergeordneten Prozeß nach:

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.

  1. Wählen Sie einen Prozeßeintrag im Bildlaufbereich des Prozeß-Managers aus.

  2. 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) aufgezeichnet.


    Tipp -

    Der entsprechende UNIX-Befehl lautet:

    truss -fa -texec,fork -s¦CLD,ALRM -p PID

    Hierbei ist PID die Prozeß-ID des gewählten Prozesses.


So verfolgende Sie Systemaufrufe nach:

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.

  1. Wählen Sie einen Prozeßeintrag im Bildlaufbereich des Prozeß-Managers aus.

  2. Wählen Sie ,,Systemaufrufe verfolgen" aus dem Menü ,,Prozeß".

    Prozeß-Manager öffnet ein Dialogfenster, in dem Sie zur Angabe der optionalen Argumente aufgefordert werden.

  3. 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) .


Tipp -

Der entsprechende UNIX-Befehl lautet:

truss -p PID

Hierbei ist PID die Prozeß-ID des gewählten Prozesses.


So zeigen Sie den Stapel für einen Prozeß an:

  1. Wählen Sie einen Prozeßeintrag im Bildlaufbereich des Prozeß-Managers aus.

  2. 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.


Tipp -

Der entsprechende UNIX-Befehl lautet:

/usr/proc/bin/pstack PID

Hierbei ist PID die Prozeß-ID des gewählten Prozesses.


So beheben Sie Fehler in einem Prozeß:

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.


Tipp -

Der entsprechende UNIX-Befehl lautet:

workshop -d command

Hierbei ist workshop der Name des Fehlersuchprogramms und befehl der Befehl, der zur Übergabe der Prozeß-ID an das Fehlersuchprogramm benötigt wird.