티스토리 뷰
프로세스 관리와 관련된 명령에는 현재 실행 중인 프로세스의 목록을 보는 명령, 특정 프로세스가 실행 중인지 확인하는 명령, 프로세스를 강제로 종료하는 명령이 있다. 또한 리눅스 GUI인 그놈의 '시스템 감시' 툴에서도 프로세스를 확인하고 종료할 수 있다. 각 명령의 사용법을 자세히 살펴보자.
1. 프로세스 목록 보기
현재 실행 중인 프로세스의 목록을 보는 명령은 ps로, ps 명령이 출력하는 PID를 통해 프로세스의 부모-자식 관계도 확인할 수 있다. 우분투에서 ps 명령의 옵션은 다음과 같다.
유닉스(SVR4) 옵션 : 묶어서 사용할 수 있고, 붙임표로 시작한다(예 : -ef)
BSD 옵션 : 묶어서 사용할 수 있고, 붙임표로 시작하지 않는다(예 : aux)
GNU 옵션 : 붙임표 두 개로 시작한다(예 : --pid)
이 세가지 유형은 섞어서 사용할 수 있으나 충돌이 발생할 수도 있다. 따라서 여러가지 옵션을 사용해보고 자신에게 필요한 정보를 제공하는 옵션의 조합을 찾을 필요가 있다.
ps
기능 현재 실행중인 프로세스의 정보를 출력한다.
형식 ps 옵션
옵션 <유닉스 옵션> -e : 시스템에서 실행 중인 모든 프로세스의 정보를 출력한다.
-f : 프로세스의 자세한 정보를 출력한다.
-u uid : 특정 사용자에 대한 모든 프로세스의 정보를 출력한다.
-p pid : pid로 지정한 특정 프로세스의 정보를 출력한다.
<BSD 옵션> a : 터미널에서 실행한 프로세스의 정보를 출력한다.
u : 프로세스 소유자의 이름, CPU 사용량, 메모리 사용량 등 상세 정보를 출력한다.
x : 시스템에서 실행중인 모든 프로세스의 정보를 출력한다.
<GNU 옵션> --pid PID 목록 : 목록으로 지정한 특정 PID의 정보를 출력한다.
현재 단말기의 프로세스 목록 출력하기 : ps
ps 명령을 옵션 없이 사용하면 현재 셸이나 터미널에서 실행한 사용자 프로세스의 정보를 출력한다. 다음은 ps 명령의 결과를 보여주는 예이다. 여기서 PID는 프로세스 번호이고, TTY는 현재 터미널 번호, TIME은 해당 프로세스가 사용한 CPU 시간의 양, CMD는 프로세스가 실행중인 명령이 무엇인지를 알려준다. PID는 시스템에 따라 다르게 나타난다.
프로세스의 상세 정보 출력하기 : -f 옵션
-f 옵션은 프로세스의 상세한 정보를 출력한다. PPID와 UID, CPU사용량, 시작시간 등의 정보가 추가로 출력된다. PPID는(Parent PID)로 부모의 PID를 뜻한다.
ps -f의 출력 정보
항목 |
의미 |
UID |
프로세스를 실행한 사용자 ID |
PID |
프로세스 번호 |
PPID |
부모 프로세스 번호 |
C |
CPU 사용량(%값) |
STIME |
프로세스의 시작 날짜나 시간 |
TTY |
프로세스가 실행된 터미널의 종류와 번호 |
TIME |
프로세스 실행 시간 |
CMD |
실행되고 있는 프로그램의 이름(명령) |
터미널에서 실행한 프로세스의 정보 출력하기 : a 옵션
a 옵션은 터미널에서 실행한 프로세스의 정보를 출력한다.
출력내용중 STAT는 프로세스의 상태를 나타낸다.
STAT에 사용되는 문자의 의미
문자 |
의미 |
비고 |
R |
실행중 |
|
S |
인터럽트가 가능한 대기상태 |
|
T |
작업 제어에 의해 정지된 상태 |
|
Z |
좀비 프로세스 |
|
STIME |
프로세스의 시작 날짜나 시간 |
|
s |
세션 리더 프로세스 |
BSD 형식 |
+ |
포그라운드 프로세스 그룹 |
|
l(소문자 L) | 멀티 스레드 |
터미널에서 실행한 프로세스의 상세 정보 출력하기
: a 옵션과 u 옵션
a 옵션과 u 옵션을 함께 사용하면 터미널에서 실행한 프로세스의 상세 정보를 출력한다. 단순히 a 옵션이나 -f 옵션을 사용한 것과 비교해보면 다음 예에서는 CPU와 메모리 사용량 등 추가적인 정보가 출력되었음을 알 수 있다.
ps au의 출력정보
항목 |
의미 |
USER |
사용자 계정 이름 |
%CPU |
CPU 사용량을 퍼센트로 표시 |
%MEM |
물리적 메모리 사용량을 퍼센트로 표시 |
VSZ |
사용하고 있는 가상 메모리의 크기(KB) |
RSS |
사용하고 있는 물리적 메모리의 크기(KB) |
START | 프로세스 시작 시간 |
전체 프로세스 목록 출력하기(유닉스 옵션) : -e 옵션
-e 옵션은 시스템에서 실행 중인 모든 프로세스를 출력한다. TTY의 값이 ? 인것은 대부분 데몬으로 시스템이 실행한 프로세스이다. 그런데 -e 옵션을 실행하면 출력 내용이 위로 스크롤되어 프로세스의 목록을 제대로 확인하기가 어렵다. 따라서 출력 결과를 페이지 단위로 확인하려면 다음과 같이 |(파이프)와 more나 less 명령을 함께 사용해야 한다.
전체 프로세스의 더 자세한 정보를 확인하려면 -e 옵션과 -f 옵션을 함께 사용해야 한다. 이 두 옵션을 함께 사용할 때는 -ef를 입력한다. 또한 쓰레드는 CMD에 []로 표시하여 구분한다.
전체 프로세스 목록 출력하기(BSD 옵션) : ax 옵션
ax 옵션은 -e 옵션과 유사한 형태로, 시스템에서 실행중인 모든 프로세스를 출력한다.
aux 옵션은 -ef처럼 시스템에서 실행중인 모든 프로세스의 자세한 정보를 출력한다.
특정 사용자의 프로세스 목록 출력하기 : -u 옵션
-u 옵션을 사용하면 특정 사용자가 실행한 프로세스의 목록을 확인할 수 있다. 상세한 정보를 보고 싶으면 -f 옵션을 함께 사용한다, 이 경우 -u 옵션이 뒤에 와야 한다.
특정 프로세스 정보 출력하기 : -p 옵션
-p 옵션과 함께 특정 PID를 지정하면 해당 프로세스의 정보를 출력할 수 있다. 이때 -f 옵션을 함께 사용하는 것이 좋다.
'Linux' 카테고리의 다른 글
프로세스를 종료할 때 pkill이 kill보다 편리한 경우 (0) | 2015.05.07 |
---|---|
프로세스 관리명령 2 (0) | 2015.05.07 |
프로세스의 개념 (0) | 2015.05.07 |
특수 접근 권한 (0) | 2015.05.06 |
기본 접근 권한 설정 (0) | 2015.05.06 |
- Total
- Today
- Yesterday
- 유즈케이스
- 프로세스
- socket
- MFC
- UML
- 리눅스
- C/C++
- 파이썬예제
- 티라노 시그널
- 안드로이드
- 데이터베이스
- 클래스
- C++
- 파이썬
- 디렉터리
- 정렬
- 파일
- 스레드
- 쓰레드
- 액터
- 터미널
- 라즈베리파이
- 악보
- 소켓 프로그래밍
- 클라이언트
- 자료구조
- C
- 티그널
- 소켓
- Sort
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |