Versenden von Signalen

Der Versender eines Signals hat keine Kontrolle darüber, wie der Empfänger reagiert.

Das Signal wird an einen bestimmten Prozeß (anhand dessen process id) geschickt, und fertig.

Aus Programmen heraus kann man Signale mit der Funktion kill() schicken (siehe man 2 kill), oder an sich selbst (an die eigene process id) mit der ANSI-C-Funktion raise().

Beispiel 28   Schicken eines Signals an den aufrufenden Prozeß papa:
    #include <unistd.h>
    ...
    pid_t papa;
    // die process id meines Aufrufers beschaffen:
    papa = getppid();
    // Das Signal SIGUSR1 an meinen Aufrufer schicken:
    kill( papa, SIGUSR1 );

Von der Shell aus (interaktiv oder aus einem Skript) kann man ebenfalls mit einem Aufruf des Kommandos kill ein Signal verschicken (man 1 kill).

Beispiel 29   Ebenfalls ein Signal SIGUSR1 an meinen Aufrufer schicken:
    #!/bin/sh
    kill -s SIGUSR1 $PPID



AnyWare@Wachtler.de