GNU/Linux >> Linux Esercitazione >  >> Linux

signalfd() perde i segnali

Se più segnali standard (ovvero:non in tempo reale) sono in attesa per un processo, il sistema operativo potrebbe decidere di unire più segnali dello stesso tipo in uno solo.

Da POSIX:

2.4.1 Generazione e consegna del segnale

[...]

Se viene generata un'occorrenza successiva di un segnale in attesa, viene definito dall'implementazione se il segnale viene consegnato o accettato più di una volta in circostanze diverse da quelle in cui è richiesta l'accodamento.

I segnali standard non vengono messi in coda per impostazione predefinita. L'unico modo per mettere in coda un segnale standard è emetterlo usando sigqueue() .


Linux
  1. Segnali Linux – Esempio di programma C per catturare i segnali (SIGINT, SIGKILL, SIGSTOP, ecc.)

  2. Nozioni di base sui segnali di Linux – Parte I

  3. Python - Intrappola tutti i segnali

  4. Come scrivere un gestore di segnale per catturare SIGSEGV?

  5. Gestione dei segnali UNIX/Linux:SIGEV_THREAD

Quali sono le cause dell'invio di vari segnali?

Come verificare quali segnali sta ascoltando un processo?

Come installare l'app di messaggistica Signal su Ubuntu 20.04

Cos'è un processo interrotto in Linux?

Quali numeri di segnale funzionano con il comando kill?

Il segnale può essere ignorato (perso)?