30 Linux 프로세스 모니터링을위한 유용한 ‘ps 명령’예제
ps (프로세스 상태)는 선택 항목에 관한 정보를보기위한 기본 Unix / Linux 유틸리티입니다. 시스템에서 실행중인 프로세스 : / proc 파일 시스템의 가상 파일에서이 정보를 읽습니다. Linux 시스템에서 무슨 일이 일어나고 있는지 이해하는 데 도움이되도록 특별히 프로세스 모니터링 하에서 시스템 관리를위한 중요한 유틸리티 중 하나입니다.
출력을 조작하기위한 많은 옵션이 있지만 작은 것을 찾을 수 있습니다. 일상적인 사용에 실질적으로 유용합니다.
또한 읽기 : Linux의 프로세스에 대해 알아야 할 모든 것
이 기사에서는 ps 명령의 30 가지 유용한 예를 살펴 보겠습니다. Linux 시스템에서 실행중인 활성 프로세스를 모니터링합니다.
ps는 각 정보 열의 의미를 나타내는 제목 줄이있는 출력을 생성합니다. ps man에서 모든 레이블의 의미를 찾을 수 있습니다. 페이지.
현재 셸의 모든 프로세스 나열
1. 인수없이 ps 명령을 실행하면 현재 셸에 대한 프로세스가 표시됩니다.
$ ps
모든 프로세스를 다른 형식으로 인쇄
2. Linux 시스템의 모든 활성 프로세스를 일반 (Unix / Linux) 형식으로 표시합니다.
$ ps -AOR$ ps -e
3. 모든 프로세스를 BSD 형식으로 표시합니다.
$ ps auOR$ ps axu
4. 전체 형식 목록을 수행하려면 -f
또는 -F
플래그를 추가하세요.
$ ps -efOR$ ps -eF
사용자 실행 프로세스 표시
5. 소유 한 모든 프로세스 (ps 명령 실행자,이 경우 루트)를 선택하고 다음을 입력 할 수 있습니다.
$ ps -x
6. 실제 사용자 ID (RUID) 또는 이름으로 사용자의 프로세스를 표시하려면 -U
플래그를 사용하십시오.
$ ps -fU tecmintOR$ ps -fu 1000
7. 유효 사용자 ID (EUID) 또는 이름으로 사용자 프로세스를 선택하려면 -u
옵션을 사용하십시오.
$ ps -fu tecmintOR$ ps -fu 1000
루트로 실행되는 모든 프로세스 인쇄 (실제 및 유효 ID)
8. 아래 명령을 사용하면 루트 사용자 권한 (실제 & 유효 ID)으로 실행중인 모든 프로세스를 사용자 형식으로 볼 수 있습니다.
$ ps -U root -u root
디스플레이 그룹 프로세스
9. 특정 그룹 (실제 그룹 ID (RGID) 또는 이름)이 소유 한 모든 프로세스를 나열하려면 다음을 입력하십시오.
$ ps -fG apacheOR$ ps -fG 48
10. 유효 그룹 이름 (또는 세션)이 소유 한 모든 프로세스를 나열하려면 다음을 입력합니다.
$ ps -fg apache
PID 및 PPID 별 프로세스 표시
11. 다음과 같이 PID별로 프로세스를 나열 할 수 있습니다.
$ ps -fp 1178
12. PPID로 프로세스를 선택하려면 다음을 입력하십시오.
$ ps -f --ppid 1154
13. PID 목록을 사용하여 선택합니다.
$ ps -fp 2226,1154,1146
TTY 별 프로세스 표시
14. tty로 프로세스를 선택하려면 다음과 같이 -t 플래그를 사용합니다.
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
프로세스 트리 인쇄
15. 프로세스 트리는 시스템의 프로세스가 서로 연결되는 방식을 보여줍니다. 부모가 종료 된 프로세스는 init (또는 systemd)에 의해 채택됩니다.
$ ps -e --forest
16. 이와 같이 주어진 프로세스에 대한 프로세스 트리를 인쇄 할 수도 있습니다.
$ ps -f --forest -C sshdOR$ ps -ef --forest | grep -v grep | grep sshd
인쇄 프로세스 스레드
17. 프로세스의 모든 스레드를 인쇄하려면 -H
플래그를 사용합니다. 그러면 LWP (경량 프로세스) 및 NLWP (경량 프로세스 수) 열이 표시됩니다.
$ ps -fL -C httpd
사용자 지정 출력 형식 지정
-o 또는 –format 옵션을 사용하여 ps를 사용하면 아래와 같이 사용자 정의 출력 형식을 만들 수 있습니다.
18. 모든 형식 지정자를 나열하려면 L
플래그를 포함합니다.
$ ps L
19. 아래 명령을 사용하면 PID, PPID, 사용자 이름 및 프로세스 명령을 볼 수 있습니다.
$ ps -eo pid,ppid,user,cmd
20. 다음은 파일 시스템 그룹, nice 값, 시작 시간 및 프로세스 경과 시간을 보여주는 사용자 지정 출력 형식의 또 다른 예입니다.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. PID를 사용하여 프로세스 이름을 찾으려면
$ ps -p 1154 -o comm=
상위 및 하위 프로세스 표시
22. 이름으로 특정 프로세스를 선택하려면 -C 플래그를 사용합니다. 그러면 모든 하위 프로세스도 표시됩니다.
$ ps -C sshd
23. 표준 출력 또는 파일에서 PID를 읽어야하는 스크립트를 작성할 때 유용한 프로세스의 모든 인스턴스의 모든 PID를 찾습니다.
$ ps -C httpd -o pid=
24. 프로세스 실행 시간을 확인하십시오.
$ ps -eo comm,etime,user | grep httpd
아래 출력은 HTTPD 서비스가 1 시간 48 분 17 초 동안 실행되었음을 보여줍니다.
문제 해결 Linux 시스템 성능
예를 들어 비정상적으로 느린 경우와 같이 시스템이 정상적으로 작동하지 않는 경우 다음과 같이 시스템 문제 해결을 수행 할 수 있습니다.
26. Linux에서 가장 높은 메모리 및 CPU 사용량으로 가장 많이 실행되는 프로세스를 찾습니다.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Linux 프로세스 / 응답하지 않는 애플리케이션 또는 높은 CPU 시간을 소비하는 프로세스를 종료하려면
먼저 응답하지 않는 프로세스 또는 애플리케이션의 PID를 찾습니다.
$ ps -A | grep -i stress
그런 다음 kill 명령을 사용하여 즉시 종료합니다.
$ kill -9 2583 2584
보안 정보 인쇄
28. 이와 같은 보안 컨텍스트 (특히 SELinux 용)를 표시합니다.
$ ps -eMOR$ ps --context
29. 이 명령을 사용하여 사용자 정의 형식으로 보안 정보를 표시 할 수도 있습니다.
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Watch Utility를 사용하여 실시간 프로세스 모니터링 수행
30. 마지막으로, ps는 정적 정보를 표시하므로 watch 유틸리티를 사용하여 아래 명령과 같이 매초마다 표시되는 반복적 인 출력으로 실시간 프로세스 모니터링을 수행 할 수 있습니다 (목표를 달성하기 위해 사용자 정의 ps 명령 지정).
$ watch -n 1 "ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head"
중요 : ps는 정적 정보 만 표시합니다. 자주 업데이트되는 출력을 보려면 htop과 같은 도구를 사용할 수 있습니다. top and glances : 마지막 두 개는 실제로 Linux 시스템 성능 모니터링 도구입니다.
다음 관련 기사를 읽어 보는 것도 좋습니다.
- Linux에서 PID 번호를 사용하여 프로세스 이름을 찾는 방법
- Linux에서 가장 높은 메모리 및 CPU 사용량으로 상위 실행 프로세스 찾기
- Linux에서 프로세스를 종료하기위한 Kill, Pkill 및 Killall 명령
- Linux에서 실행중인 프로세스를 찾고 종료하는 방법
- 백그라운드에서 Linux 명령을 시작하고 터미널에서 프로세스를 분리하는 방법