ps 명령어는 프로세스 상태에 관한 정보를 보여주는 명령어다. (process status)
운영하면서 굉장히 많이 사용되는 명령어에 속한다.
이 명령어의 옵션은 유닉스 방식과 BSD 방식이 있다. 유닉스 방식은 -가 붙는다는 것을 참고한다.
그리고 리눅스에서는 둘 다 혼합해서 사용도 가능하다.
1. 전체 프로세스 보기
ps -e
ps ax (BSD)
2. 전체 프로세스 풀포맷으로 보기
기본포맷 : PID, TTY , TIME, CMD
풀포맷(-ef) : UID, PID, PPID, C, STIME, TTY, TIME, CMD
풀포맷(aux) : USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND
유닉스 방식과 BSD 방식은 포맷스펙이 조금 다르다.
-f 옵션은 full. u 옵션은 user-oriented. 그래서 출력해주는 컬럼이 다르다.
ps -ef
ps aux (BSD)
3. 특정 사용자 프로세스만 보기
여러 사용자의 정보를 볼 경우 ,(콤마)를 붙히는데 ,뒤에 공백을 넣으면 정상적으로 동작되지 않으므로 참고!
ps -f -u irteam,root
4. 특정 프로세스명으로 보기
와일드카드 표시나 like검색이 되지 않으므로 이름을 정확하게 적어야 한다.
ps -C java
위 명령어는 ps -e | grep java와 동일하다. (자바 웹개발하면서 제일 많이 쓰는 명령어가 아닐까함 ㅎ)
하지만 ps -e | grep java 명령어 조합은 like 검색처리가 가능하다.
상세정보까지 같이 볼려면 -f를 붙혀주면 된다.
ps -f -C java
ps -ef | grep java
5. 특정 PID로 보기
여러개의 PID를 볼 경우, 역시 ,(콤마)를 붙혀주면 된다.
ps -p 14381,14392
6. 컬럼 기준으로 정렬하기
컬럼명 앞에 -는 내림차순, +는 오름차순이다.
ps -ef --sort=-pcpu (CPU 내림차순 정렬)
ps -ef --sort=-user,+pid (사용자명 내림차순, PID 오름차순으로 정렬)
ps -f -u root --sort=-pcpu (사용자명이 root인 것중에서 CPU 내림차순 정렬)
7. 쓰레드 상세정보 보기
ps -eLf | grep java
ps aux -L | grep java (BSD 방식 포맷으로 보기)
특정 프로세스만 보고 싶다면 다음과 같이 조합할 수 있다.
ps -Lf -p 12345