AA_PO-21492-123RF-Hypermania2_123RF-Ampeln_resized.jpg

© Hypermania2, 123RF

Prozesse, hört die Signale!

Signale sind ein wichtiges Linux-Feature

09.10.2013
Programme können unter Linux kommunizieren, indem sie sich "Signale" schicken. Wie das geht und wofür man Signale braucht, verraten wir in diesem Basics-Artikel.

Wenn Sie aus einem Terminalprogramm heraus ein anderes Programm starten, dann schläft die Shell solange, bis dieses Programm beendet ist. Wie kriegt sie mit, dass das andere Programm fertig ist? Linux schickt der Shell ein Signal und macht sie damit darauf aufmerksam, dass ein so genannter Kindprozess beendet wurde.

Das ist nur eines von vielen Anwendungsgebieten für Signale. Aus Benutzersicht sind Ihnen vielleicht die TERM- und KILL-Signale bekannt: Die können Sie mit dem Kommando kill an ein Programm schicken, um es zu beenden. Das KILL-Signal ist dabei das härtere: Es beendet einen Prozess in jedem Fall, egal, in welchem Zustand dieser gerade ist. Im Vergleich ist das TERM-Signal friedlicher und lässt dem Prozess noch die Gelegenheit zum Aufräumen.

Nun war hier abwechselnd von Programmen und Prozessen die Rede – sind das nicht gleichwertige Ausdrücke? Nein, ein Programm ist eine Datei auf der Festplatte, z. B. die Programmdatei firefox des Browsers Firefox. Ein Prozess entsteht erst, wenn Sie dieses Programm in den Speicher laden und starten. Einige Programme darf man auch mehrfach starten, so dass dann mehrere Prozesse laufen, die dasselbe Programm ausführen. Beim Verschicken von Signalen ist es immer wichtig, den richtigen Prozess anzusprechen.

Signalbehandlung

Das Funktionsprinzip von Signalen ist bei allen Unix-artigen Betriebssystemen (also auch bei Linux) gleich: Prozesse (oder auch das Betriebssystem selbst) können Signale an andere Prozesse verschicken. Wenn das passiert, geschieht zunächst wenig: Linux verwaltet für jeden Prozess eine Liste der empfangenen Signale, und wenn Prozess A ein Signal an Prozess B schickt, wird dies im passenden Listeneintrag von Prozess B vermerkt. Wird dieser das nächste Mal aktiv, setzt er nicht seine eigentliche Aufgabe fort. Stattdessen prüft Linux, ob er einen so genannten

...

Liebe Leserin, lieber Leser,

dieser Artikel ist nur für Mitglieder der LinuxCommunity zugänglich, die ein Archiv-Abo der Zeitschrift EasyLinux besitzen. Das Archiv-Abonnement kostet zusätzlich zum Printabo 1 Euro pro Monat und bietet vollen Online-Zugriff auf sämtliche EasyLinux-Artikel, Chat-Workshops und das exklusive LC-Klubforum.

Falls Sie bereits Abonnent eines Archiv-Abos sind, melden Sie sich bitte über das Login-Menü an.

Um ein Archiv-Abonnement abzuschließen, bestellen Sie dieses bitte in unserem Online-Shop.

EasyLinux-Artikel werden 12 Monate nach der Erstveröffentlichung automatisch freigeschaltet. Weitere Artikel aus der Zeitschrift EasyLinux finden Sie im Archiv.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare