강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터2급강좌 : 프로세스(process) 특정 시그널보내기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터2급강좌 : 프로세스(process) 특정 시그널보내기



 

kill

kill 명령은 지정한 프로세스에 특정한 시그널(signal)을 보내는 명령어이다.

 

 

 

 

, 특정 프로세스에 실행종료시그널, 재시작시그널 등 명령어의 의미에서도 알 수 있듯이 주로 프로세스를 종료하는 용도로 사용되는 명령어이다.

 

 

 

 

지정한 시그널이 없으면 TERM 시그널을 보내는데, 이 시그널은 프로세스를 종료시킬 것이다.

 

 

 

 

 

 

프로세스의 종료는 상기한 바와 같이 프로세스가 포그라운드에 있는 경우에는 <Ctrl+C>로 종료가 가능하지만 백그라운드에 있는 경우에는 kill 또는 killall 명령을 사용해야 한다.

 

 

 

 

그리고 이 명령어들은 해당 콘솔에서 실행된 프로세스뿐만 아니라 현재 실행된 모든 프로세스를 제어할 수 있다.

 

 

 

 

수퍼 유저는 모든 프로세스에 대해 kill 명령어를 사용할 수 있으나 일반 사용자들은 자기가 실행시킨 프로세스에 대해서만 kill 명령어를 사용할 수 있다.

 

 

 

 

 

 

이 명령을 사용하는 가장 간단한 방법은 kill 뒤에 프로세스 아이디(PID)를 적는 것이다.

 

 

 

 

그리고 필요에 따라 kill 뒤에 옵션을 사용하여 시그널을 지정할 수 있다.

 

 

 

 

 

 

 

kill [-s 시그널|-p] [-a] [--] PID ...

kill l [시그널]

 

 

 

 

 

 

 

kill의 옵션은 다음과 같다.

 

 

 

옵션

의미

-s

특별히 보낼 시그널을 지정한다.

 

 

 

 

여기에는 시그널 이름이나 번호가 온다.

-l

시그널로 사용할 수 있는 시그널 이름들을 보여준다.

-a

프로세스 IDpid로 변환할 때, 다른 uid를 갖는 프로세스도 변환시킬 수 있도록 허용한다.

-p

프로세스 ID를 지정한 경우, 그 프로세스에 시그널을 보내지는 않고 그 프로세스의 이름만 보여준다.

 

 

다음과 같이 l 옵션을 사용하면 kill 명령어에서 사용 가능한 모든 시그널들을 보여 준다.

 

ed36d8ddf63920e81ddecfc30a55e46d_1676873376_1025.png
 

 

 

 

시그널은 시그널의 번호, 시그널 이름 및 시그널로 각각 보낼 수 있는데, 예를 들어 강제로 실행중인 프로그램을 종료시킬 때에는 옵션으로 9, -SIGKILL, -KILL 등을 사용하면 된다.

 

 

 

 

 

아래는 자주 사용되는 시그널의 의미들이다.

 

번호

시그널 이름

시그널

의미

1

SIGHUP

HUP

hangup. 로그아웃하거나 접속을 끊을 때 발생하는 시그널로서, 특정의 실행 중인 프로그램이 이용하는 설정 파일을 변경시키고 변화된 내용을 적용할 때 이용된다.

 

 

 

 

 

2

SIGINT

INT

interrupt. 현재 작동중인 프로그램의 동작을 멈출 때 사용한다.

 

 

 

 

사용자가 터미널에서 종료키(quit)를 누를 때 커널에 의해 보내지는데 일반적인 값은 <ctrl + c>이다.

3

SIGQUIT

QUIT

SIGINT와 마찬가지로 사용자가 터미널에서 종료키(quit)를 누를 때 커널에 의해 보내지는데 일반적인 값은 <ctrl + \>이다.

9

SIGKILL

KILL

무조건 해당 실행중인 프로그램을 중지시킨다.

 

 

 

 

이 시그널 역시 많이 사용되는데, 실행중인 프로그램을 무조건 끝내고 싶을 때 이 시그널을 보내면 바로 종료한다.

11

SIGSEGV

SEGV

segmentation violation. 메모리 액세스가 잘못 되었을 때 발생한다.

 

 

 

 

 

15

SIGTERM

TERM

실행중인 프로그램에 정의되어 있는 정상적인 종료방법으로 프로그램을 끝내게 한다.

 

 

 

 

kill 명령에서 시그널을 특별히 지정하지 않으면 이 시그널을 이용하여 프로그램을 끝낸다.

 

 

 

 

18

SIGCONT

CONT

중단되었던 프로세스를 재개한다.

19

SIGSTOP

STOP

프로세스를 중단한다.

20

SIGTSTP

TSTP

터미널에서의 중단 시그널이다.

 

 

 

 

 

 

 

 

다음과 같이 kill 명령을 사용하여 firefoxgnome-calculator 프로그램의 프로세스를 종료하도록 하자.

 

 

 

 

 

 

 

# jobs -l

[1]+ 5377 Stopped firefox

[2]- 5398 Running gnome-calculator &

# kill 5398

[2] 종료됨 gnome-calculator

# kill -9 5377

 

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  89 명