티스토리 뷰

backend/linux

유닉스 시그널 kill

daeuun 2023. 8. 17. 16:46

유닉스 시그널 목록 확인

아래 명령어를 입력하면 유닉스에서 지원하는 시그널 목록을 확인할 수 있다.

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

유닉스는 인터럽트 프로세스에 특정 이벤트가 발생했음을 알리는 메세지인 시그널(SIGNAL)을 보낼 수 있다.

 

 

 

시그널 (Signal)

  • 유닉스 기반 시스템에서 프로세스 간 통신 방식 중 하나입니다.
  • "소프트웨어 인터럽트"라고도 불립니다.
  • 프로세스는 다른 프로세스에게 시그널을 보낼 수 있으며, 해당 시그널을 받으면 특정한 액션을 수행하게 됩니다. (예: 프로세스 종료, 일시 중지 등)

 

인터럽트 (Interrupt)

  • CPU가 프로그램을 실행 중일 때, 특정 하드웨어 장치나 예외 상황에서 발생하는 알림입니다.
  • 인터럽트가 발생하면 현재 실행 중인 프로그램을 일시 중단하고, 인터럽트를 처리한 후 원래 프로그램으로 복귀합니다.
  • 이를 통해 운영체제는 실시간으로 다양한 장치나 예외 상황에 대응할 수 있습니다.

 

이 중 9 - SIGKILL과 15 - SIGTERM 은 프로세스를 종료하기 위해 사용하는 시그널입니다.

 

 

 

15 - SIGTERM

  • 프로세스에게 정상 종료하도록 요청하는 시그널
  • 프로세스는현재 사용중인 리소스를 해제하고, 데이터를 저장하는 등 안전하게 모든 작업을 완료할 때 까지 기다려줍니다. (예: 파일 닫기, 메모리 해제 등).
  • 프로세스는 이 시그널을 무시하거나 핸들링 할 수 있습니다.

 

9 - SIGKILL

  • 프로세스를 강제로 종료시키는 시그널입니다.
  • 프로세스는 이 시그널을 무시하거나 핸들링할 수 없습니다.
  • 주의해야 할 점은, 강제로 종료되기 때문에 프로세스는 정상적인 종료 절차를 수행하지 않게 됩니다.
  • 또한 SIGKILL 시그널을 받은 프로세스는 자식 프로세스를 종료하라는 시그널을 보낼 수 없습니다.
  • 따라서 SIGKILL 은 정상적으로 프로세스를 내릴 수 없을 때 사용하는 최후의 수단!

 

 

 

반응형

'backend > linux' 카테고리의 다른 글

[linux] 현재 사용하고 있는 포트 확인  (0) 2023.02.17
[linux] 리눅스 프로세스 확인 & 중지  (0) 2023.02.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함