티스토리 뷰

Linux

프로세스 관리 명령

Andrew Shin 2015. 5. 7. 01:32

프로세스 관리와 관련된 명령에는 현재 실행 중인 프로세스의 목록을 보는 명령, 특정 프로세스가 실행 중인지 확인하는 명령, 프로세스를 강제로 종료하는 명령이 있다. 또한 리눅스 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
«   2024/05   »
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
글 보관함