2 posts tagged “ps”
프로세스라는 것은 현재 실행되고 있는 프로그램들을 가리키는 말
[서식]
ps [-옵션]
[주요 사용 옵션]
- -a : 모든 프로세스를 나열
- -c : 해당 프로세스를 유발시킨 명령어 이름을 task struct에 참조한다.
- -e : 해당 프로세스에 관련된 환경변수 정보를 함께 출력
- -f : 프로세스 간 상속관계를 트리 구조를 보여줌
- -h : 메뉴는 보여주지 않음. (PID, TTY, STAT, TIME, COMMAND 등)
- -j : 작업에 관련된 ID를 출력
- -l : j보다 자세하게 정보를 출력
- -u : 사용자 이름과 프로세스가 시작된 시간을 출력
- -x : 터미널에 종속되지 않는 프로세스들을 출력
- -n : 사용자 정보를 ID와 숫자로 표시
- -w : 출력 결과를 생략하지 않고 출력
ps + 옵션 결과가 출력될 때에 윗 부분에 나타나는 메뉴들의 뜻은 다음과 같다
- PID(Process ID) : 프로세스마다 주어지는 번호
- TTY(Tele TYpewrite) : 명령어가 실행되는 터미널의 번호
- STAT(STATe) : 실행되고 있는 프로세스 상태 (R, S, D, T, Z, W, N)
- START(START) : 프로세스가 시작된 시간
- TIME(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 : 프로세스가 실행하고 있는 커널 루틴
현재 존재하는 프로세스들의 실행 상태를 요약한 보고서를 만들어 준다.
ps 명령어를 파이프와 함께 사용하는 것이 유용할 때가 있다. 보통 다음과 같이 사용함으로써 httpd process가 실행 중인지 확인할 수 있다.
ps aux | grep http [return]
PS 상태에 대한 여러 가지 정보는 다음과 같다
- user(BSD) : 프로세스 소유자의 username
- uid(sysV) : 프로세스 소유자의 username
- pid : 프로세스 식별번호
- %CPU : cpu 사용 비율 추정치 (BSD)
- %mem : 메모리 사용 비율 추정치 (BSD)
- SZ : K 단위 혹은 페이지 단위의 가상 메모리 사용 가능
- RSS: 실제 메모리 사용량
- TTY : 프로세스와 연결된 터미널 포트
- STAT : 프로세스의 현재 상태
- R : 실행 중 혹은 실행될 수 있는 상태
- S : sleep
- I : idle (비활동 상태 : BSD / 중간적 상태 : sysV)
- T : 정지된 상태 (suspend)
- Z : 좀비 (zombie) 프로세스
- D : 디스크 관련 대기 상태 (BSD)
- P : 페이지 관련 대기 상태 (BSD)
- X : 메모리 확보를 위해 대기 중 (sys V)
- K : 사용 가능한 커널 프로세스 (aix)
- W : 스왑 out된 상태
- N : nice 되어진 상태
- > : 우선 순위가 인위적으로 높아진 상태
- TIME : 총 cpu 사용 시간
- COMMAND: 프로세스의 실행 명령 행
- STIME(sysV) : 프로세스가 시작된 시각 혹은 날짜
- C(sysV)/CP(BSD) : 짧은 기간 동안의 cpu 사용률
- F : 프로세스의 프래그들
- PPID : 부모 프로세스의 PID
- PRI : 실제 실행 우선 순위
- NI : nice
- WCHAN : 프로세스를 기다리고 있는 이벤트