Linux - ps 명령어 알아보기(프로세스 상태보기)

     

     

     

    이번 포스팅에서는 ps 명령어에 대해서 알아보겠습니다.

     

     

     

       Linux ps 명령어란?

     

    리눅스에서는 여러 개의 프로세스가 동시에 실행되기 때문에 현재 실행 중인 프로세스의 정보를 얻기 위해 사용되는 명령어는 ps 명령어입니다

    그리고 프로세스 중에서 CPU, 메모리 등등을 많이 점유하고 있거나, 지나치게 많은 자식 프로세스를 생성하는 등등에 시스템에 속도가 느려지는 경우 ps 명령어로 분석하여 시스템 오류를 감지할 수 있습니다.

     

     

     

       Linux ps 명령어 옵션

     

     

    # ps [option]

     

    옵션 의미
    -a 세션 리더와 터미널과 연관이 없는 프로세스를 제외한 모든 프로세스를 출력 합니다.
    a BSD 스타일로서 터미널과 연관된 모든 프로세스를 출력하거나, x 옵션과 함께 사용되어 모든 프로세스를 출력 합니다.
    -d 세션 리더를 제외한 모든 프로세스들을 출력 합니다.
    r 실행 프로세스만 출력 합니다.
    x BSD 스타일로서 혼자 사용되면 사용자에 의해 소유된 모든 프로세스를 출력하고 a 옵션과 함께 사용되어 모든 프로세스를 출력 합니다.
    -l 상세한 내용을 출력 합니다.
    -f 완전한 형식의 목록을 출력한다.
    -h 메뉴는 보여주지 않습니다.(PID, TTY, STAT, TIME, COMMAND 등).
    -j 작업에 관련된 ID를 출력 합니다.
    -l -j 옵션보다 자세하게 정보를 출력 합니다.
    u 사용자 친화적인 형식으로 출력 합니다
    f 프로세스 간 상속관계를 트리구조로 출력 합니다
    n 사용자의 정보를(모든 형식의 UID와 GID를 포함하여) 숫자로 표시 합니다
    -w 출력결과를 생략하지 않고 넓게 출력 합니다

     

     

     

       Linux ps 출력 의미

     

     

    옵션 의미
    PID(process ID) 프로세스마다 주어지는 번호 입니다
    TTY(TeleTypewriter) 명령어가 실행되는 터미널의 번호, 할당된 것이 없는 경우 물음표(?) 출력 합니다
    STAT 실행되고 있는 프로세스 상태 입니다(R, S, D, T, Z, W, N)
    START 프로세스가 시작된 시간 입니다
    TIME CPU가 사용한 시간 입니다
    USER(USER) 사용자 이름 입니다.
    COMMAND(COMMAND) 사용자가 실행한 명령어 입니다
    UID(User ID) 사용자의 ID 입니다.
    PGID(Parent Group ID) 사용자 부모 프로세스이 그룹 ID 입니다
    SID(Session ID) 세션 ID 입니다
    PRI(PRIority) 실행하는 우선순위에 따른 프로세스 입니다
    NI(NIce) nice에 의한 우선순위에 따른 프로세스 입니다.
    RSS(Resident Set Size) 프로세스가 사용하는 메모리의 크기 입니다.
    SZ(SiZe) 프로세스가 사용하는 자료와 스택의 크기 입니다.
    SHRD(SHareD) 프로세스가 사용하는 공유 메모리
    %CPU 프로세스가 사용하는 CPU 점유율
    %MEM 프로세스가 사용하고 있는 메모리 점유율
    WCHAN 프로세스가 실행하고 있는 커널 루틴
    VSZ KiB 단위(1024 바이트 단위)의 프로세스의 버추얼 메모리 크기(vsize와 동일한 의미)

     

     

     

       Linux ps 명령어 (프로세스 상태보기)

     

     

     

    1. ps 명령어 - 사용중인 프로세스 조회

     

    # ps -e
    # ps ax
    # ps aux

     

    서버 관리자들이 가장 많이 사용되는 옵션 입니다.

     

     

     

    2. ps 명령어 - 특정 프로세스 조회

     

    # ps aux | grep mysqld

     

    리눅스에서는 많은 프로세스를 사용중이므로 출력 내용이 많아 보기가 어렵습니다 그래서 |(파이프)와 grep 명령을 통해 특정 프로세스를 조회하는 방법도 사용 됩니다.

     

     

     

    3. ps 명령어 - 전체 프로세스 끊어서 보기

     

    # ps ax | more

     

    실행되고 있는 전체 프로세스 확인이 필요한 경우 less 또는 more 명령어를 사용하여 페이지 단위로 끝아서 확인하기도 합니다.

    Posted by 서버이야기