새소식

자격증/리눅스마스터

[LINUX] 리눅스마스터 2급 기출 :: 프로세스 시그널(kill), 시그널 종류

  • -

시그널

  • 특정 이벤트가 발생했을 때 신호를 보내 알려주는 것
  • 리눅스에서는 프로세스 끼리 서로 통신할때 사용
  • 인터럽트라고도 부른다
  • kill 명령 사용시 지정한 시그널이 없다면 기본적으로 TERM 시그널 보내짐

 

시그널 분류

  • 사용자의 인터럽트 키를 통해 발생하는 시그널
  • 프로세스가 발생시키는 시그널
  • 하드웨어가 발생시키는 시그널

 

시그널 종류 확인

kill -l

 

시그널 종류

  • SIGHUP(HUP): 프로세스 재시작. 로그아웃과 같이 터미널에서 접속이 끊겼을때 보내지는 시그널. 데몬관련 환경 설정 파일을 변경시키고 변화된 내용을 적용하기 위해 재시작할때 사용
  • SIGINT(INT, 2): 프로세스 인터럽트, ctrl+C와 같다. 키보드로부터 오는 인터럽트 시그널. 실행 중지
  • SIGILL(ILL): Illegal Instruction. 잘못된 명령어 사용시 발생
  • SIGKILL(KILL, 9): kill signal, 많이 쓰이는 시그널 9번이다. 프로세스 강종
    SIGTERM(TERM): 프로세스 정상 종료. kill 명령의 기본 시그널
  • SIGTSTP(TSTP) 20번: ctrl + z 입력시 발생. 실행 정지 후 실행을 계속하기 위해 대기시키는 시그널 / TSTP: terminal STOP의 약자
  • SIGSTOP(STOP): 터미널에서 입력된 정지 시그널. 무시될 수 없음.
  • SIGQUIT(QUIT): 키보드로부터 오는 시그널 중지. 코어 덤프( ctrl + )
  • SIGCONT(CONT): STOP에 의해 정지된 시그널 다시 실행

 

프로세스에 시그널 보내기

프로세스에 시그널을 보내기 위해 kill 명령을 이용한다

# kill -SIGNUM PID
kill -9 11

 

시그널 핸들러

시그널 발생시 원하는 동작을 설정할 수 있다

sigaction 함수를 통해 정의할 수 있다.

 

SIGTERM vs SIGKILL

  • SIGKILL은 바로 죽여버린다. 잔인하게...
  • SIGTERM은 자식들에게 죽음을 알린다. 자식들도 작업 종료 / 작업을 끝날때까지는 기다려주는 듯??

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.