É por causa do NPTL . Como faz parte da biblioteca GNU C , quase toda distribuição moderna de linux não usa mais os dois primeiros sinais em tempo real. . O NPTL é uma implementação dos Threads POSIX . O NPTL faz uso interno dos dois primeiros sinais em tempo real.
Esta parte da página do sinal é muito interessante:
The Linux kernel supports a range of 32 different real-time signals, numbered 33 to 64. However, the glibc POSIX threads implementation internally uses two (for NPTL) or three (for LinuxThreads) real-time signals (see pthreads(7)), and adjusts the value of SIGRTMIN suitably (to 34 or 35). Because the range of available real-time signals varies according to the glibc threading implementation (and this variation can occur at run time according to the available kernel and glibc), and indeed the range of real-time signals varies across UNIX systems, programs should never refer to real-time signals using hard-coded numbers, but instead should always refer to real-time signals using the notation SIGRTMIN+n, and include suitable (run-time) checks that SIGRTMIN+n does not exceed SIGRTMAX.
Eu também verifiquei o código fonte para glibc; veja linha 22 . __SIGRTMIN
é aumentado em +2, portanto, os dois primeiros sinais em tempo real são excluídos do intervalo de sinais em tempo real.