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)
この質問の答えは、manページのReal-time Signals
セクションにあります。
リアルタイムシグナル
Linux は、POSIX.1b リアルタイム拡張で最初に定義されたリアルタイム シグナル (現在は POSIX.1-2001 に含まれています) をサポートしています。サポートされるリアルタイム シグナルの範囲は、マクロとによって定義されます
SIGRTMIN
。POSIX.1-2001ではSIGRTMAX
、実装が少なくともPOSIX_RTSIG_MAX(8)
リアルタイム シグナルをサポートすることを要求しています。
33
Linux カーネルは、から までの番号が付けられた 32 種類のリアルタイム シグナルをサポートしています64
。ただし、glibc
POSIX スレッド実装では、内部的に 2 つ (NPTL の場合) または 3 つ (LinuxThreads の場合) のリアルタイム シグナルを使用し ( を参照pthreads(7)
)、 の値をSIGRTMIN
適切に (34
またはに35
) 調整します。