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

프로세스관리및 시스템로그 1편

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문



제목 : 프로세스관리및 시스템로그 1편




ㅇ 제작 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 서버관리팀


ㅇ SULINUX  홈페이지 : www.sulinux.net

ㅇ 리눅스포털 홈페이지 : www.superuser.co.kr


프로세스 관리 및 시스템 로그


1. 프로세스 관리


리눅스는 멀티프로세싱을 기본으로 지원하므로 한번에 수백개 이상의 프로그램을 동시 수행할 수 있다. 이렇게 동작되는 하나하나의 프로그램들은 각 고유의 번호가 붙어 동작되는데 이것을 프로세스라 부릅니다.

프로세스는 크게 프로그램이 동작하여 수행이 종료 될 때까지 기다리는 foreground process와 사용자의 입력에 관계없이 실행되는 background process로 나눌수 있다.


1-1. 포그라운드(Foreground) 프로세스


일반적으로 쉘상태에서 명령을 내리면 해당 프로세스가 종료될 때까지 기다려야 한다. 이러한 프로세스를 포그라운드 프로세스라 부르고 가장 많이 접하는 프로세스이다.


실제 사용의 예


PIC37D.gif

설명 : find라는 명령어로 동작중인 상태 이 상태의 프로세스를 포그라운드 프로세스라 부르면 이렇게 동작중일때에는 명령을 내린 사용자는 다른 작업을 수행 할 수 없다.


PIC37E.gif

설명 : 포그라운드가 끝난 상태의 화면이다.


1-2. 백그라운드(background) 프로세스


백그라운드 프로세스를 동작시키기에 좋은 방법은 기존의 포그라운드 명령뒤에 '&'를 붙혀 동작시키게 되면 포그라운드로 동작되어야 하는 명령어가 백그라운드 프로세스로 바꿔 동작된다. 이때에는 포그라운드 명령을 수행 할때와 달리 명령을 내린 사용자는 자신이 하고자하는 다른 명령어를 계속 실행할 수 있다.


PIC37F.gif

설명 : ‘&’ 옵션을 이용하여 백그라운드 프로세스를 실행시키면 PID값을 화면에 출력하고 프롬프트를 떨어뜨립니다. 하지만 백그라운드로 실행한 결과값은 수시로 프롬프트화면에 뿌려지므로 이상하게 생각하지 않아도 된다.


PIC380.gif설명 : 백그라운 명령어 완료되면 ‘[1]+ Done’ 를 화면에 뿌려주면 완료를 알립니다. 여기서 [1]은 작업번호(job number)를 가르키며, ‘+ Done’는 완료를 나타냅니다. 계속 동작중일경우에는 ‘+ Done’대신 PID(Process ID)를 보여준다.


2. jobs


백그라운드로 실행중인 프로세스나 현재 중지된 프로세스의 목록을 출력해주는 명령어가 jobs이다.


jobs [옵션]


옵 션

설    명

-l

프로세스번호를 같이 출력

실제 사용의 예


PIC381.gif

설명 : +는 현재 실행중인 프로세스를 나타내고, -기호는 이전에 실행되었던 프로세스를 의미한다.


PIC382.gif

설명 : 프로세스번호(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 [%작업번호]


실제 사용의 예


PIC383.gif


설명 :  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

프로세스 간의 상속관계를 같이 출력한다.

PIC384.gif


위와 같이 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

프로세스의 실행 명령행


실제 사용의 예


PIC385.gif


PIC386.gif


설명 : aux라는 옵션으로 시스템상에 움직이고 있는 모든 process들을 소유자의 정보와 함께 출력한 화면이다. system 계열의 ef옵션과 BSD계열의 aux는 유사하지만 약간의 차이가 있다. 하지만 리눅스에서는 이두 경우 모두를 다 지원하고 있다. 따라서 옵션 ef와 aux는 유사하다고 생각하면 될 것이다.


PIC387.gif

설명 : 현재 동작중이 프로세스중 sendmail 관련 프로세스를 grep이란 명령어로 필터해서 모두 출력한 화면이다.

그럼 사용자 계정이 nemo와 관련된 프로세스를 모두 찾아볼려면 어떻게 해야 할까요? 아래의 예를 참고하자


PIC388.gif


4-2. pstree


프로세스들을 계층적인 트리구조 형태로 출력해주는 유틸리티이다.


형식 : pstree [옵션]


옵션

설    명

-a

각 프로세스의 명령행 인자까지 출력해준다.

-h

현재 프로세스와 그것의 조상 프로세스를 하이라이트로 강조해서 출력해준다.

-n

PID 값으로 정렬해서 출력해준다. 기본값은 이름으로 정렬하여 보여준다.

-p

PID 값을 같이 출력해준다.


실제 사용의 예


PIC389.gif


설명 : 최초로 실행되는 프로세스인 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

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  97 명