개요
보통 프로세스 정보를 확인할 때 ps -ef를 주로 사용한다. 최근 Python으로 프로세스 모니터링 방법을 확인하는데 ps aux 명령어를 추천하는 글을 봤는데 두 명령어 옵션에 차이가 있는지 정리한다.
ps -ef
linux 매뉴얼에 따르면 표준 구문, UNIX을 이용해 시스템 상의 모든 프로세스를 확인할 때는 아래의 명령어를 제시하고 있다.
ps -e
ps -ef
ps -eF
ps -ely
각 옵션은 다음과 같다.
- -e : 모든 프로세스를 선택한다. -A와 동일하다.
- -f : 목록을 full format으로 출력한다.
- -F : 목록을 full format으로 출력한다. -f와 동일하다.
- -l : 목록을 long format으로 출력한다.
- -y : 플래그를 표시하지 않고, ADDR 대신 RSS(실제 메모리 크기)를 표시한다. -l 옵션에서만 사용할 수 있다.
실행 결과
ps aux
linux 매뉴얼에 따르면 DSD 구문을 이용해 시스템 상의 모든 프로세스를 확인할 때는 아래의 명령어를 제시하고 있다.
ps ax
ps axu
각 옵션은 다음과 같다.
- a : 터미널과 연관된 모든 프로세스 출력. x 옵션과 같이 사용하면 모든 프로세스를 출력한다.
- x : 사용자에 의해 소유된 모든 프로세스 출력. a 옵션과 같이 사용하면 모든 프로세스를 출력한다.
- u : user-oriented format으로 출력
실행 결과
ps -ef VS ps aux
두 명령어 모두 모든 프로세스를 보여주지만 프로세스에 대한 출력 정보가 조금 다르다.
ps -ef는 PID, PPID를 확인할 수 있기 때문에 프로세스의 식별 정보, 프로세스의 부모-자식 관계를 보기 좋다.
ps aux는 %CPU, %MEM, VSZ(가상 메모리 크기), RSS(실제 메모리 크기), STAT(프로세스 상태) 정보와 같은 프로세스 상태를 보기에 적합하다.
참고 문서
https://man7.org/linux/man-pages/man1/ps.1.html
https://unipro.tistory.com/238