참고: 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 명령어를 통해 알아낼 수 있습니다.
관련 글
'dev > unix-like' 카테고리의 다른 글
[linux] 리눅스 10가지 wget 명령어 사용법 (1) | 2022.01.13 |
---|---|
[linux] 리눅스 tail 명령어 사용 예제 (실시간 로그 보기) (0) | 2019.12.10 |
[linux] 리눅스 ls 명령어 사용 예제 (파일 목록 보기) (0) | 2018.03.15 |
[linux] 리눅스 df 명령어 사용 예제 (디스크 용량 확인) (0) | 2018.03.09 |
[linux] 리눅스 cat 명령어 사용 예제 (파일 내용 보기) (0) | 2018.03.09 |
댓글