프로세스관리및 시스템로그 1편
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 11,242 조회
- 0 추천
- 목록
본문
제목 : 프로세스관리및 시스템로그 1편
ㅇ 제작 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 서버관리팀
ㅇ SULINUX 홈페이지 : www.sulinux.net
ㅇ 리눅스포털 홈페이지 : www.superuser.co.kr
프로세스 관리 및 시스템 로그
1. 프로세스 관리
리눅스는 멀티프로세싱을 기본으로 지원하므로 한번에 수백개 이상의 프로그램을 동시 수행할 수 있다. 이렇게 동작되는 하나하나의 프로그램들은 각 고유의 번호가 붙어 동작되는데 이것을 프로세스라 부릅니다.
프로세스는 크게 프로그램이 동작하여 수행이 종료 될 때까지 기다리는 foreground process와 사용자의 입력에 관계없이 실행되는 background process로 나눌수 있다.
1-1. 포그라운드(Foreground) 프로세스
일반적으로 쉘상태에서 명령을 내리면 해당 프로세스가 종료될 때까지 기다려야 한다. 이러한 프로세스를 포그라운드 프로세스라 부르고 가장 많이 접하는 프로세스이다.
실제 사용의 예
설명 : find라는 명령어로 동작중인 상태 이 상태의 프로세스를 포그라운드 프로세스라 부르면 이렇게 동작중일때에는 명령을 내린 사용자는 다른 작업을 수행 할 수 없다.
설명 : 포그라운드가 끝난 상태의 화면이다.
1-2. 백그라운드(background) 프로세스
백그라운드 프로세스를 동작시키기에 좋은 방법은 기존의 포그라운드 명령뒤에 '&'를 붙혀 동작시키게 되면 포그라운드로 동작되어야 하는 명령어가 백그라운드 프로세스로 바꿔 동작된다. 이때에는 포그라운드 명령을 수행 할때와 달리 명령을 내린 사용자는 자신이 하고자하는 다른 명령어를 계속 실행할 수 있다.
설명 : ‘&’ 옵션을 이용하여 백그라운드 프로세스를 실행시키면 PID값을 화면에 출력하고 프롬프트를 떨어뜨립니다. 하지만 백그라운드로 실행한 결과값은 수시로 프롬프트화면에 뿌려지므로 이상하게 생각하지 않아도 된다.
설명 : 백그라운 명령어 완료되면 ‘[1]+ Done’ 를 화면에 뿌려주면 완료를 알립니다. 여기서 [1]은 작업번호(job number)를 가르키며, ‘+ Done’는 완료를 나타냅니다. 계속 동작중일경우에는 ‘+ Done’대신 PID(Process ID)를 보여준다.
2. jobs
백그라운드로 실행중인 프로세스나 현재 중지된 프로세스의 목록을 출력해주는 명령어가 jobs이다.
jobs [옵션]
옵 션 |
설 명 |
-l |
프로세스번호를 같이 출력 |
실제 사용의 예
설명 : +는 현재 실행중인 프로세스를 나타내고, -기호는 이전에 실행되었던 프로세스를 의미한다.
설명 : 프로세스번호(2461)도 같이 출력 되는 것을 알 수 있다.
3. fg
fg는 백그라운드 프로세스를 포그라운드 프로세스로 전환하는 명령어이다.
fg [%작업번호(job_spec)]
실제 사용의 예
[nemo@www nemo]$ fg
설명 : 백그라운드 작업을 포그라운드 작업으로 전환한다. 만약 백그라운드작업이 여러개가 있을 경우 별도의 작업번호를 부여하지 않으면 현재 수행중인(+기호가 붙은) 작업을 전환한다.
[nemo@www nemo]$ fg %1
설명 : 작업번호 1번인 작업을 포그라운드 작업으로 전환한다.
4) 참고 : 포그라운드로 실행중인 작업을 끝내려면 ctrl+c키를 눌러 작업을 종료된다.
4. bg
bg 포그라운드 프로세스를 백그라운드 작업으로 전환하는 명령이다. 프로세스를 실행한 후 [CTRL]+[Z]키를 눌러 작업을 잠시 중지시킨 후에 bg명령어를 이용하여 작업을 백그라운드로 보낼 수 있다.
bg [%작업번호]
실제 사용의 예
설명 : find / -name '*.txt' 2>/dev/null >list.txt 명령을 내린후 [CTRL]+[Z]키를 눌러면 작업을 일시 중지하니다. 일시 중지를 나타내는 “[1]+ Stopped find / -name '*.txt' 2>/dev/null >list.txt” 메시지를 출력하고 작업을 멈추게 된다. 그런 다음 bg 명령어를 입력하여 백그라운드 전환하여 작업을 계속 수행하게 만든 화면이다.
여기서 “CTRL + Z ”를 우리는 인터럽트키라고 부릅니다. 기본적인 인터럽트키 3가지를 간단히 알아보겠습니다.
종 류 |
설 명 |
[CTRL] +[C] |
진행중인 작업을 취소함 |
[CTRL] +[D] |
진행중인 작업을 정상 종료 또는 shell 상태에서는 로그아웃 시킴 |
[CTRL] +[Z] |
진행중인 작업을 일시 중지시킴 |
4. 프로세스 보기 - ps(process status), pstree
현재 동작중인 프로세스들의 상태를 점검하는 명령어이다.
4-1. ps
형식 : ps [옵션]
옵 션 |
설 명 |
-a |
다른 사용자에 의해서 생성된 프로세스들을 출력한다. |
-u |
프로세스의 소유자에 대한 정보 등 매우 자세하게 출력해준다. |
-l |
프로세스의 정보를 옆으로 길게 출력한다. |
-x |
daemon process등 터미널의 컨트롤과 관련이 없는 프로세스도 출력한다. |
-e |
해당 프로세스에 관련 된 환경변수 정보도 함께 출력한다. |
-f |
프로세스 간의 상속관계를 같이 출력한다. |
위와 같이 ps명령어 실행시 나열되는 항목에 대한 간단한 설명하도록 하겠다.
항 목 |
설 명 |
USER |
프로세스 소유자명을 표시한다. |
PID |
프로세스의 식별번호 |
%CPU |
CPU사용비율의 추정치 |
%MEM |
메모리 사용비율의 추정치 |
VSZ |
K단위 또는 페이지 단위의 가상메모리 사용량 |
RSS |
실제 메모리 사용량 |
TTY |
프로세스와 연결된 터미널 |
STAT |
현재 프로세스의 상태 |
R : 실행 중 혹은 실행될 수 있는 상태 | |
S : sleep상태 (보통 20초이상된 상태) | |
I : idle(비활동상태 또는 중간적상태), 보통 20초이하의 대기상태 | |
T : 정지된 상태(suspend) | |
Z : 좀비(zombie)프로세스 | |
D : 디스크 관련 대기상태(BSD) | |
P : 페이지 관련 대기상태(BSD) | |
X : 메모리 확보를 위한 대기 상태(sysV) | |
K : 사용가능한 커널 프로세스(AIX) | |
W : 스왑 OUT된 상태 | |
N : nice되어진 상태 | |
> : 우선순위가 인위적으로 높아진 상태 | |
START |
프로세스 시작 시간 또는 날짜 |
TIME |
총 CPU사용시간 |
COMMAND |
프로세스의 실행 명령행 |
실제 사용의 예
설명 : aux라는 옵션으로 시스템상에 움직이고 있는 모든 process들을 소유자의 정보와 함께 출력한 화면이다. system 계열의 ef옵션과 BSD계열의 aux는 유사하지만 약간의 차이가 있다. 하지만 리눅스에서는 이두 경우 모두를 다 지원하고 있다. 따라서 옵션 ef와 aux는 유사하다고 생각하면 될 것이다.
설명 : 현재 동작중이 프로세스중 sendmail 관련 프로세스를 grep이란 명령어로 필터해서 모두 출력한 화면이다.
그럼 사용자 계정이 nemo와 관련된 프로세스를 모두 찾아볼려면 어떻게 해야 할까요? 아래의 예를 참고하자
4-2. pstree
프로세스들을 계층적인 트리구조 형태로 출력해주는 유틸리티이다.
형식 : pstree [옵션]
옵션 |
설 명 |
-a |
각 프로세스의 명령행 인자까지 출력해준다. |
-h |
현재 프로세스와 그것의 조상 프로세스를 하이라이트로 강조해서 출력해준다. |
-n |
PID 값으로 정렬해서 출력해준다. 기본값은 이름으로 정렬하여 보여준다. |
-p |
PID 값을 같이 출력해준다. |
실제 사용의 예
설명 : 최초로 실행되는 프로세스인 init가 왼쪽 상단에 표시되며 자식 프로세스는 오른쪽에 나열된다. 또한 프로세스 앞에 숫자와 함께 표시되는 *(4*)는 실행되고 있는 프로세스의 개수 표시한다.
4-3. top
현재시스템의 프로세스 상태를 연속적으로 화면에 보여준다.
top [옵션]
옵 션 |
설 명 |
-d 갱신시간 |
화면 갱신시간을 설정 |
-q |
화면을 계속 갱신한다. |
-i |
idle상태와 zombie 프로세스를 무시한다. |
항 목 |
설 명 |
PID |
Process ID |
USER |
소유자 |
PR |
Priority(우선순위) |
NI |
Nice Value ( -20 ~ 19 사이의 값으로 작을 수록 우선순위가 높아짐) |
VIRT |
가상이미지(단위:kb) VIRT = SWAP + RES |
RES |
상주메모리 사이즈(Resident size)(단위:kb) RES = CODE + DATA |
SHR |
공유 메모리 사이즈(단위:kb) |
S |
프로세스 상태 |
D : 휴지가가 없이 동작되는 상태 | |
R : 동작중인 상태 | |
S : 휴지상태 | |
T : 추적되어지거나 또는 멈춘상태 | |
Z : 좀비(zombie)상태 | |
%CPU |
CPU 사용 시간 퍼센트 |
%MEM |
메모리 사용 퍼센트 |
TIME+ |
프로세스가 시작하여 CPU를 사용한 총시간(누적사용시간) |
COMMAND |
프로세스를 실행한 명령어 라인 |
top 명령이 실행 중일때 사용 될 수 있는 명령어
명령어 |
설 명 |
SPACE |
관련자료
-
이전
-
다음