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)
실시간 신호를 지원해야 합니다.Linux 커널
33
은64
. 그러나glibc
POSIX 스레드 구현은 내부적으로 2개(NPTL의 경우) 또는 3개(LinuxThreads의 경우) 실시간 신호를 사용하고(참고자료 참조)pthreads(7)
값을SIGRTMIN
적절하게 조정합니다(to34
또는35
).