본문 바로가기

Linux/Shell

[Linux] 프로세스 관련 명령어 : top, ps, kill

0. 약어

PID : 프로세서 ID
RSS : 사용되는 실제 메모리의 용량(KB)
USER : 실행시킨 계정
SZ : 스택 크기(KB)
TIME : 현재까지 사용된 CPU의 시간

%CPU : 마지막 분동안 프로세서가 사용한 CPU시간의 백분율

TTY : 프로세서의 제어 터미널(t3=/dev/tty3)
START : 시작 시간
STAT : 프로세스 상태

 

1. top

현재 실행되는 Task들을 유동적으로 관찰 가능.

윈도우의 작업관리자랑 비슷함.

 

2. ps

 

아래는 ps --help all 의 결과

이하 자주 쓰는 옵션들


-A , -e : 모든 프로세스 출력 (매우 길다)

 

a : 다른 사용자의 프로세서도 출력

-a : 세션 리더 빼고 출력

 

 

-l : 자세한 정보
-u : 각 프로세서의 사용자 이름과 시작 시간 표시

 

-j : job 중심 형태
-s : signal 중심 형태
-v : virtual memory 중심 형태


-m : memory 정보 출력

-w : wide 형태로 출력(강제개행 안함)

-h : 헤더 생략
-r : 현재 실행중인 프로세서만 출력

-f : 모든 정보 출력


-S : 차일드(child) CPU 시간과 메모리 페이지 결함(fault) 정보를 추가 한다.
-c : 커널 task_structure로 부터 명령 이름을 보여준다.


-x : 실행시킨 터미널이 없는 프로세서 확인

3. kill

 

아래는 kill --help의 결과와 kill -l 의 결과.

주 사용 방법

 

kill -15 PID : 작업종료

kill -9 PID : 강제종료

 

 

다음은 완전히 같다.

kill -s KILL PID
kill -s SIGKILL PID
kill -s 9 PID
kill -n 9 PID
kill -9 PID

kill PID
kill 

 

signal number이나 옵션을 지정하지 않으면 기본적으로 작업종료로 사용한다.

 

 

4. 활용법

 

kill -9 `ps -ef | grep 'PROCESS_NAME' | awk '{print $2}'`

 

kill -9 'abcd' : 'abcd'를 PID로 갖는 프로세스를 강제 종료

 

ps -ef : 모든(-e) 프로세스를 자세히(-f) 보여줌

grep 'PROCESS_NAME' : 인풋에서 'PROCESS_NAME'을 찾음

예시 : 파이프라인( | )을 통해 ps -ef의 결과를 grep의 입력으로 넣어준 경우

awk '{print $2}' : 결과물 중 두 번째 필드를 출력

예시 : 파이프라인을 통해 위 결과를 awk의 입력으로 넣어준 경우

즉, 위 환경에서 다음 두 줄은 같은 의미다.

kill -9 `ps -ef | grep 'KakaoTalk.exe' | awk '{print $2}'`
kill -9 33560 38105 // 33560, 38105는 카카오톡

 

리눅스의 awk 사용법에 관련된 것을 다음 포스팅으로 올릴 예정.

'Linux > Shell' 카테고리의 다른 글

[Linux] grep 명령어 사용법  (0) 2020.06.04