IT 공부내용 정리/Linux

리눅스 명령어 - kill 프로세스를 강제 종료 해야 할 때

따뜻한 차가움 2025. 3. 13. 16:33

사용 버전 : Linux 우분투(레드햇 계열) 24.04.01 LTS 버전
사용한 시스템 지역/언어 : 대한민국/한글

man kill 원문

더보기

KILL(1)                          User Commands                         KILL(1)

NAME
       kill - send a signal to a process

SYNOPSIS
       kill [options] <pid> [...]

DESCRIPTION
       The  default  signal  for kill is TERM.  Use -l or -L to list available
       signals.  Particularly useful signals include  HUP,  INT,  KILL,  STOP,
       CONT,  and  0.   Alternate  signals may be specified in three ways: -9,
       -SIGKILL or -KILL.  Negative PID values may be  used  to  choose  whole
       process  groups; see the PGID column in ps command output.  A PID of -1
       is special; it indicates all processes except the kill  process  itself
       and init.

OPTIONS
       <pid> [...]
              Send signal to every <pid> listed.

       -<signal>
       -s <signal>
       --signal <signal>
              Specify  the  signal to be sent.  The signal can be specified by
              using name or number.  The behavior of signals is  explained  in
              signal(7) manual page.

       -q, --queue value
              Use  sigqueue(3)  rather  than kill(2) and the value argument is
              used to specify an integer to be sent with the  signal.  If  the
              receiving  process has installed a handler for this signal using
              the SA_SIGINFO flag to sigaction(2), then  it  can  obtain  this
              data via the si_value field of the siginfo_t structure.

       -l, --list [signal]
              List  signal  names.   This  option has optional argument, which
              will convert signal number to signal name, or other way round.

       -L, --table
              List signal names in a nice table.

       NOTES  Your shell (command line interpreter) may have a  built-in  kill
              command.   You  may  need  to  run the command described here as
              /bin/kill to solve the conflict.

EXAMPLES
       kill -9 -1
              Kill all processes you can kill.

       kill -l 11
              Translate number 11 into a signal name.

       kill -L
              List the available signal choices in a nice table.

       kill 123 543 2341 3453
              Send the default signal, SIGTERM, to all those processes.

SEE ALSO
       kill(2),   killall(1),   nice(1),   pkill(1),   renice(1),   signal(7),
       sigqueue(3), skill(1)

STANDARDS
       This  command  meets  appropriate  standards. The -L flag is Linux-spe‐
       cific.

AUTHOR
       Albert Cahalan wrote kill in 1999 to replace a bsdutils  one  that  was
       not standards compliant.  The util-linux one might also work correctly.

REPORTING BUGS
       Please send bug reports to procps@freelists.org

procps-ng                         2023-01-16                           KILL(1)

man kill 번역기 번역본

더보기

킬 (1) 사용자 명령 킬 (1)

이름
       킬 - 프로세스에 신호를 보내십시오

개요
       킬 [옵션] <pid> [...]

설명
       킬의 기본 신호는 용어입니다.  -L 또는 -L을 사용하여 사용 가능합니다
       신호.  특히 유용한 신호에는 Hup, Int, Kill, STOP, STOP,
       Cont 및 0. 대체 신호는 세 가지 방식으로 지정 될 수 있습니다 : -9,
       -sigkill 또는 -kill.  음의 PID 값은 전체를 선택하는 데 사용될 수 있습니다
       프로세스 그룹; PS 명령 출력의 PGID 열을 참조하십시오.  -1의 PID
       특별합니다. 킬 프로세스 자체를 제외한 모든 프로세스를 나타냅니다
       그리고 초기.

옵션
       <pid> [...]
              나열된 모든 <pid>에 신호를 보내십시오.

-<신호>
       -s <신호>
       -signal <signs>
              전송 될 신호를 지정합니다.  신호는 지정할 수 있습니다
              이름 또는 번호 사용.  신호의 동작은 설명됩니다
              신호 (7) 수동 페이지.

-Q, -Queue 값
              죽이기 대신 sigqueue (3)를 사용하고 가치 주장은 다음과 같습니다.
              신호로 전송 될 정수를 지정하는 데 사용됩니다.  만약
              수신 프로세스는이 신호를 사용하여 처리 된 핸들러를 설치했습니다.
              SA_SIGINFO 플래그에서 SIGACTION (2)를 얻을 수 있습니다.
              siginfo_t 구조의 si_value 필드를 통한 데이터.

-l, -list [신호]
              목록 신호 이름.   이 옵션에는 선택적 인수가 있습니다
              신호 번호를 신호 이름 또는 다른 방식으로 변환합니다.

-L, --- 타이블
              멋진 테이블에 신호 이름을 나열하십시오.

참고 쉘 (Command Line Interpreter)이 내장 된 킬이있을 수 있습니다.
              명령.   여기에 설명 된 명령을 실행해야 할 수도 있습니다.
              /bin/kill은 갈등을 해결합니다.


       -9-1을 처치하십시오
              죽일 수있는 모든 프로세스를 죽입니다.

킬 -L 11
              11 번을 신호 이름으로 변환하십시오.

살인 -L
              사용 가능한 신호 선택을 멋진 테이블에 나열하십시오.

123 543 2341 3453을 처치하십시오
              기본 신호 인 Sigterm을 모든 프로세스로 보내십시오.

참조하십시오
       Kill (2), Killall (1), Nice (1), Pkill (1), Renice (1), 신호 (7),
       SIGQUEUE (3), 기술 (1)

표준
       이 명령은 적절한 표준을 충족합니다. -L 플래그는 Linux -Spe입니다.
       시시한.

작가
       Albert Cahalan은 1999 년에 Bsdutils를 대체하기 위해 Kill을 썼습니다.
       표준을 준수하지 않습니다.  Util-linux도 올바르게 작동 할 수도 있습니다.

보고 버그
       procps@freelists.org로 버그 보고서를 보내주십시오

2023-01-16의 Procps-of Kill (1)

 

 

형태 : kill [시그널] [PID]

기능 : [PID]에 해당하는 프로세스에 [시그널]을 전달한다.(일반적으로 프로세스를 종료하게됨)

 

[시그널]

시그널 : 프로세스에 무언가 발생했다는 것을 알리는 간단한 메세지

에러코드와 비슷한 정의로 받아들일 수 있다.

시그널을 받은 프로세스는 일반적인 경우 종료된다.

 

시그널의 종류

kill -l 을 통해서 시그널의 많은 종류를 확인할 수 있으나 대표적인 몇개의 예시를 알아보겠다. 자세한 내용은 man 원문/번역본을 참조하면 된다.

시그널 번호 기본처리 의미
SIGHUP 1 종료 터미널과 연결이 끊겼음.
SIGINT 2 종료 이터럽트로 사용자가 Ctrl + C 입력
SIGQUIT 3 종료, 코어덤프 종료 신호로 사용자가 Ctrl + \ 입력
SIGKILL 9 종료 이 시그널을 받은 프로세스는 무시할 수 없으며 강제 종료됨.
SIGALRM 14 종료 알람 발생.
SIGTERM 15 종료 kill 명령이 보내는 시그널.

 

 

유사 기능

형태 : pkill [프로세스명](ps를 했을 때 나오는 CMD 칸의 이름)

기능 : [프로세스명]에 해당하는 프로세스를 종료함.

 

형태 : killall [프로세스명](ps를 했을 때 나오는 CMD 칸의 이름)

기능 : [프로세스명]에 해당하는 모든 프로세스를 한 번에 종료. 일치하는 대상을 모두 종료하는 것. 단, 해당 프로세스를 실행시킨 user여야 함.

ex) man 프로세스가 3개가 켜져있을 때 killall man 을 실행하면 man 프로세스 3개를 모두 종료시킴

 

 

작업중인 프로세스가 무한루프에 빠졌다거나 처리 시간이 너무 오래걸리거나 컴퓨터의 자원을 너무 많이 잡아먹는다고 생각 될 때

해당 기능을 이용해서 프로세스를 강제로 종료시킬 수 있다. 문제가 되는 프로세스가 치명적인 오류를 만드는게 아니라면 kill 명령어로 종료시킨 후 점검해 보는 것이 좋을 것이다.