Prozeßsteuerung durch Signale
CIP Index Up Left Right

Prozeßsteuerung durch Signale

Signale sind ein sehr beliebtes - weil einfaches - Mittel der Prozeßkommunikation. Wenn Prozeß 1 dem Prozeß 2 ein Signal schickt, so ruft das Betriebssystem für den Prozeß 2 eine dem Signal zugeordnete Routine auf, die vpm Programm aus teilweise selbst definiert werden kann (siehe man signal oder sigaction). Dort kann dann entsprechend reagiert werden.

Das Kommando, um einem Prozeß ein Signal zu schicken heißt kill und erhält als Parameter Signalname und Prozeß- oder Jobnummer. Man kann also die pid aus der ps Ausgabe oder die Jobnummer aus der Ausgabe von jobs angeben.

Eine Liste der wichtigsten Signale. Eine vollständige Liste erhält man mit kill -l oder man signal .

TERM
Dieses Signal wird von der Shell an den aktuellen Prozeß verschickt, wenn man die Tastenkombination CONTROL-C drückt. Es bedeutet ihm, sich doch bitte zu beenden. Es kann jedoch ignoriert werden.
KILL
Wenn man mit TERM keinen Erfolg hatte, kann man den Prozeß auf jeden Fall mit KILL beenden, da dieses Signal nicht ignoriert werden kann. Man sollte dieses Signal aber möglichst selten verschicken, da dem Prozeß keine Chance mehr gegeben wird, sich ordentlich zu beenden. So können unliebsame Effekte entstehen.
STOP
Dieses Signal (genauergesagt TSTP, aber das ist fast dasselbe) wird von der Shell verschickt, wenn man die Tastenkombination CONTROL-Z drückt. Es suspendiert den Prozeß.
CONT
Weist das Betriebssystem an, einen suspendierten Prozeß weiterlaufen zu lassen.
HUP
Teilt dem Prozeß mit, daß seine Verbindung zum Terminal unterbrochen wurde, z.B. weil ein xterm geschlossen wurde, eine Shell beendet oder ein Terminal ausgeschaltet wurde. Der Prozeß sollte sich daraufhin beenden, das funktioniert jedoch eher selten.
Beispiele:
kill 654
stop %2
kill -STOP %2

Siehe auch:
Status eines Prozeß: Running, Suspendiert, Blockiert
Jobkontrolle mit der Shell