프로세스 관리 명령

1. ps

현재 시스템에서 실행 중인 프로세스 목록을 출력한다.

사용형식

ps [옵션]

사용옵션

-A : 모든 프로세스 출력.
-e : -A와 동일.
T : 현재 터미널에서 실행된 프로세스만 출력.
-a : 현재 세션 사용자에 의해 모든 터미널에서 실행된 프로세스 출력.
a : 모든 프로세스를 BSD 스타일로 출력. 명령과 함께 사용된 파라메터도 출력. x와 함께 사용시 제어 터미널없이 실행된 프로세스까지 함께 출력.
-d : 현재 세션 사용자에 의해 실행된 모든 프로세스를 제어 터미널 유무와 상관없이 전부 출력.
r : 현재 실행중인 프로세스만 출력.
x : 제어 터미널 없이 실행된 프로세스만 출력. a 옵션과 보통 함께 사용.
f : pstree와 같은 형식으로 ASCII art 방식으로 출력.
-F : 모든 항목을 다 출력.(full format)
-f : UNIX 스타일로 모든 항목 출력.
j : 부모 프로세스를 포함한 jobs 형식으로 출력.
-j : jobs 형식.
l : BSD 스타일의 자세한 항목 출력.
-l : long format. -y옵션과 함께 사용하면 플래그 정보를 표시하지 않는다.
u : UID를 포함하여 출력.
v : 가상 메모리 정보를 포함하여 출력.
-Z : 보안 컨텍스트 정보 출력.(SELinux에 해당.)
h : 헤더 없이 출력.
w, -w : wide format으로 줄바꿈하여 모든 항목 출력.

일반적으로 1개의 옵션만을 사용하기 보다는 관련있는 옵션을 묶어서 사용한다. ps 명령의 실행 예는 다음과 같다.

모든 프로세스를 표준적인 방법을 출력하는 예:

$ ps -e
$ ps -ef
$ ps -eF
$ ps -ely

프로세스 트리를 출력하는 예:

$ ps -ejH
$ ps axjf

스레드 정보를 표시하는 예:

$ ps -eLf
$ ps axms

보안 정보를 출력하는 예:

$ ps -eo euser,ruser,suser,fuser,f,comm,label
$ ps axZ
$ ps -eM

root 사용자에 의해 실행된 모든 프로세스 출력하는 예:

$ ps -U root -u root u

출력 필드

  • USER : 프로세스 소유자의 계정.
  • PID : 프로세스 식별자.
  • RSS : 프로세스에 의해 사용되는 실제 메모리 사용량.(Kbyte)
  • SZ : 프로세스 자료와 스택의 크기.(Kbyte)
  • TIME : 현재까지 사용된 CPU 시간.(분, 초)
  • TTY : 프로세스의 제어 터미널.
  • %CPU : 전체 프로세스를 대상으로 CPU가 해당 프로세스를 실행한 CPU 시간의 백분율.
  • %MEM : 프로세스가 사용한 실제 메모리의 백분율.
  • START : 프로세스 시작 시간.
  • COMMAND : 명령어 이름.

프로세스의 상태코드(STAT)

  • D(disk wait) : 디스크 입출력 대기같은 인터럽트 할 수 없는 대기 상태.
  • R(running or runable) : 프로세스가 실행중이거나 실행큐에 들어있는 실행 가능 상태.
  • S(sleep) : 인터럽트 가능한 대기 상태.
  • T(stopped) : 프로세스가 ^Z나 트레이스 명령 등으로 멈춘 상태.
  • W(paging) : 가상 메모리 사용 중.(2.6버전 커널부터 사용하지 않음.)
  • X(dead) : 실행 종료. 이후 나타나지 않음.
  • Z(zombie) : 좀비 프로세스.

BSD 포맷에 의한 추가 상태 코드

  • < : 실행 우선 순위 높음.(다른 사용자의 nice 명령에 의한 우선 순위 변경 안됨.)
  • N : 실행 우선 순위 낮음.(다른 사용자의 nice 명령에 의해 우선 순위 변경 가능.)
  • L : 실시간 실행이나 사용자 입출력에 의해 메모리 락이 걸림.
  • s : 세션내에서 실행됨.
  • l : 멀티 스레드.
  • + : 포그라운드 실행.

2. pstree

프로세스 정보를 트리 형태로 출력.

사용 옵션

-n : PID 순으로 정렬.
-p : 프로세스 명과 PID를 함께 출력.

3.kill

지정된 프로세스에게 종료 시그널을 전송한다.

사용형식

$ kill [옵션] 프로세스ID

사용옵션

-s : 전송할 시그널의 이름이나 번호 지정.
-p : 전송할 시그널을 출력만 한다.
-l : 시그널 목록 출력.

SIGNAL 종류

  • SIGHUP(1) : 제어 터미널이 멈추거나 제어 프로세스가 죽음.
  • SIGINT(2) : 키보드로부터의 인터럽트 시그널.
  • SIGQUIT(3) : 키보드로부터의 종료 시그널(quit).
  • SIGABORT(6) : abort로부터의 중단.
  • SIGKILL(9) : kill 시그널. 강제 종료.
  • SIGTERM(15) : 프로그램 종료 시그널.

3. top

프로세스의 CPU와 메모리 사용량 등 정보를 실시간으로 모니터링한다.

4. bg

^Z로 중지된 프로세스를 백그라운드 작업으로 변경한다. 명령 실행시 '&'를 함께 실행하면 실행시 백그라운드 작업으로 실행된다.

5. jobs

백그라운드 작업 목록을 표시한다.

6. fg

백그라운드 작업 목록에서 프로세스를 포그라운드 작업으로 되돌린다.

+ Recent posts