저는 CentOS/RHEL을 배우고 있으며 현재 프로세스 관리에 대한 작업을 하고 있습니다.
내가 읽고 있는 RHCSA 책에서는 실행을 kill 1234
SIGQUIT 전송으로 설명합니다. 나는 항상 신호 유형 스위치를 추가하지 않고 kill 명령을 실행하면 기본값이 다음과 같아야 한다고 생각했습니다.kill -15
SIGTERM 은 kill -15
SIGKILL kill -9
이죠?
CentOS/RHEL은 약간 다른 접근 방식을 사용합니까, kill -15
아니면 제가 착각한 것입니까?
편집: kill -l
SIGQUIT를 사용하면 kill -3
키보드를 사용하여 프로세스를 종료하는 것과 관련된 것 같습니다. man 7 signal
또한 SIGQUIT가 이라고 명시되어 있으므로 SIGQUIT가 기본값이라고 명시한 kill -3
내 책이 잘못되었다고 가정할 수 있습니다 .kill -15
답변1
아니요, 동일하지 않습니다. 두 가지 모두에 대한 기본 작업은 프로세스를 종료하고 SIGQUIT
코어도 덤프하는 것입니다. 예를 들어 참조하십시오.리눅스 매뉴얼 페이지signal(7)
. kill
SIGTERM은 기본적으로 전송되므로 SIGQUIT를 기본값으로 언급하는 것은 실제로 버그일 뿐이라고 상상할 수 있습니다. 저것기본값은 POSIX입니다., SIGTERM, SIGKILL 및 SIGQUIT 숫자에도 동일하게 적용됩니다.
답변2
두 개의 종료 명령이 있는데, 하나는 procps에, 다른 하나는 셸에 있습니다. 둘 다 SIGTERM을 기본값으로 사용합니다. procps Kill의 경우 명령 도움말, 매뉴얼 페이지 및 kill 소스(최신 마스터 브랜치의 Skill.c 행 724)는 모두 SIGTERM이라고 말합니다. 일관성이 있다는 것을 알면 좋습니다.
신호에 대해 기억해야 할 한 가지는 "일반적인 무리"를 넘어 x86 Linux 시스템과 약간 다른 시스템에서 작업하기 시작하면 신호가 존재하지 않거나 다른 번호를 가지고 있다는 것을 알 수 있다는 것입니다. procps(및 아마도 다른 많은 프로그램)는 컴파일 타임에 숫자를 굽습니다(기본적으로 포함 파일에 있는 것이 무엇이든 signum.h를 찾으십시오).
@ilkkachu가 말했듯이 SIGTERM은 걱정할 것이 없으며 POSIX에 있습니다.