2016-04-26 6 views
1

Gibt es ein Signal ohne Standardaktion außer SIGINFO. Diese link schlägt vor, dass auch die SIGPWR Standardaktion den Prozess beenden soll. Meine Anforderung besteht darin, das Signal nur dann zu verarbeiten, wenn ein benutzerdefinierter Signalhandler vorhanden ist, andernfalls das Signal zu ignorieren.Signal ohne Standardaktion außer SIGINFO

+0

Was genau ist Ihr Anwendungsfall? Und was meinst du mit 'handle das Signal nur dann, wenn ein Custom Signal Handler vorhanden ist? ' –

+0

Ich meinte, dass die Standardaktion des Signals zu nichts sein sollte, nur wenn es einen Signal-Handler gibt, sollte das Signal etwas tun –

Antwort

0

Eine Liste aller Signale und ihrer Standarddispositionen finden Sie unter man 7 signal. Momentan sehe ich, dass diese standardmäßig ignoriert werden:

Signal  Value  Action Comment 
    ────────────────────────────────────────────────────────────── 
    SIGCHLD 20,17,18 Ign Child stopped or terminated 
    SIGURG  16,23,21 Ign Urgent condition on socket (4.2BSD) 
    SIGWINCH 28,28,20 Ign Window resize signal (4.3BSD, Sun) 

Wie Sie sehen können, gibt es wirklich nicht viele Möglichkeiten. Ich würde sagen, dass SIGCHLD OK sein kann, wenn Sie sicher sind, dass Sie keine untergeordneten Prozesse haben, oder SIGURG, wenn Sie sicher sind, dass Sie keine Sockets haben, die auf diese Weise signalisiert werden können. Schließlich ist SIGWINCH nur geeignet, wenn Sie sicher sind, dass Ihr Programm kein kontrollierendes Terminal hat, das in der Größe geändert werden kann.

Verwandte Themen