본문 바로가기
dev/unix-like

[linux] 리눅스 kill 명령어 사용법 (프로세스 죽이기)

by 최연탄 2019. 2. 13.
728x90
반응형

참고: https://www.howtoforge.com/linux-kill-command/

리눅스에서 작업을 할 때 응용프로그램이나 프로세스가 멈추는 것을 볼 수 있습니다. 이 때의 유일한 해결책은 그 프로세스를 종료하는 것입니다. 리눅스는 이러한 시나리오에서 사용할 수 있는 kill 유틸리티를 제공합니다.

kill 명령어

kill 명령어는 대개 프로세스를 죽일 때 사용합니다. 하지만 내부적으로는 프로세스에 시그널을 보내 원하는 작업을 하게 하는 명령어입니다. 이 툴을 사용하려면 다음 구문을 사용합니다.

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

프로세스 죽이는 방법

죽이려는 프로세스의 pid를 얻은 다음 kill 명령어의 인자로 넘기면 됩니다.

$ kill [pid]

예를들어 node.js로 실행 중인 서버를 죽이고 싶다면 ps 명령어를 통해 node.js의 pid를 얻고 kill 명령어의 파라미터로 넘겨 실행시키면 종료시킬 수 있습니다.

사용자 지정 시그널 전송 방법

kill 명령어의 default 시그널은 TERM(15) 입니다. 하지만 -s 명령으로 다른 시그널을 보낼 수 있습니다.

$ kill -s [signal] [pid]

예를 들어 프로세스가 TERM(15) 시그널에 응답하지 않으면 다음의 명령어 처럼 KILL(9)를 사용해 강제로 죽일 수 있습니다.

$ kill -s KILL [pid]

사용 가능한 시그널의 목록

-l (List의 엘) 명령어를 통해 지원하는 시그널의 목록을 확인할 수 있습니다.

위 그림의 경우 OSX에서 실행한 화면이라 31가지 시그널이 보이는데 지원하는 시그널의 목록은 운영체제 환경마다 다릅니다.

시그널을 보내는 다른 방법

위의 예 처럼 -s 명령어를 이용해 여러가지 시그널을 보낼 수 있는데 이 방법 이외에도 여러가지 방법이 있습니다.

$ kill -s KILL [pid] $ kill -s SIGKILL [pid] $ kill -s 9 [pid] $ kill -9 [pid]

위의 예 중에서 마지막 방법이 가장 간단해서 널리 쓰이고 있습니다. 여기서 숫자는 -l 명령어를 통해 알아낼 수 있습니다.

관련 글

시스템 관리자를 위한 25 가지 리눅스 명령어

반응형

댓글