kill -l
コマンドの出力を確認してください。
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
SIGRTMINの整数値は32ではなく34です。
... 31) SIGSYS 34) SIGRTMIN ...
なぜ?
$ uname -r
4.19.0-8-amd64
$ ls -l /lib/x86_64-linux-gnu/libc-2.28.so
-rwxr-xr-x 1 root root 1.8M May 1 2019 /lib/x86_64-linux-gnu/libc-2.28.so*
答え1
この質問に対する答えはsignal(7)
マニュアルページにあります。Real-time Signals
リアルタイム信号
Linuxは、もともとPOSIX.1bリアルタイム拡張(現在POSIX.1-2001に含まれています)で定義されたリアルタイム信号をサポートします。サポートされるリアルタイム信号の範囲は
SIGRTMIN
マクロとによって定義されますSIGRTMAX
。 POSIX.1-2001では、少なくともPOSIX_RTSIG_MAX(8)
リアルタイム信号をサポートする実装が必要です。
33
Linuxカーネルは、番号付き32のリアルタイム信号をサポートしています64
。ただし、glibc
POSIXスレッド実装は内部的に2つ(NPTLの場合)または3つ(LinuxThreadsの場合)リアルタイム信号(参照pthreads(7)
)を使用し、値は適切に調整されますSIGRTMIN
(34
またはの場合35
)。