GNU/Linux >> LINUX-Kenntnisse >  >> Linux

signalfd() verpasst Signale

Wenn mehrere Standardsignale (d. h. Nicht-Echtzeitsignale) für einen Prozess anstehen, kann das Betriebssystem entscheiden, mehrere Signale desselben Typs zu einem zusammenzuführen.

Von POSIX:

2.4.1 Signalerzeugung und -übermittlung

[...]

Wenn ein nachfolgendes Auftreten eines anhängigen Signals generiert wird, ist es implementierungsdefiniert, ob das Signal unter anderen Umständen als denen, in denen eine Warteschlange erforderlich ist, mehr als einmal geliefert oder akzeptiert wird.

Standardsignale werden standardmäßig nicht in die Warteschlange gestellt. Die einzige Möglichkeit, ein Standardsignal in die Warteschlange zu stellen, besteht darin, sie mit sigqueue() auszugeben .


Linux
  1. Wie schreibe ich einen Signalhandler, um SIGSEGV abzufangen?

  2. UNIX/Linux-Signalverarbeitung:SIGEV_THREAD

  3. Signalwarteschlangen in C

  4. Wer verwendet POSIX-Echtzeitsignale und warum?

  5. Welcher Thread verarbeitet das Signal?

Wie überprüft man, auf welche Signale ein Prozess hört?

So installieren Sie die Signal Messaging App unter Ubuntu 20.04

Wie verhält sich SIGINT zu den anderen Beendigungssignalen wie SIGTERM, SIGQUIT und SIGKILL?

IPC mit Signalen unter Linux

Was ist ein gestoppter Prozess unter Linux?

Welche Signalnummern funktionieren mit dem Kill-Befehl?