
Linux 컴퓨터에서 실행중인 프로세스의 스냅 샷을 ps 명령. 이름, 사용자 또는 터미널로 필요한만큼 세부적으로 또는 세부적으로 프로세스를 찾으십시오. 우리는 당신에게 방법을 보여줍니다.
리눅스에서의 프로세스 관리
모든 Linux 및 Unix 계열 운영 체제의 핵심은 커널입니다. RAM과 CPU 시간과 같은 시스템 리소스 할당에는 많은 책임이 있습니다. 각 작업의 우선 순위에 따라 실행중인 모든 프로세스가 공정한 점유율을 갖도록 실시간으로 저글링해야합니다.
때로는 작업이 잠기거나 꽉 조여 들어가거나 다른 이유로 응답하지 않을 수 있습니다. 또는 계속 실행될 수 있지만 CPU 시간이나 RAM이 너무 많거나 반 사회적 방식으로 작동합니다. 때때로 과제는 관련된 모든 사람에게 자비로 죽여야합니다. 첫 번째 단계. 물론 문제의 프로세스를 식별하는 것입니다.
그러나 작업이나 성능 문제가 전혀 없을 수 있습니다. 컴퓨터 내부에서 어떤 프로세스가 실행되고 있는지 궁금 할 것입니다. 그만큼 ps 명령은이 두 가지 요구를 모두 충족시킵니다. “지금 바로”컴퓨터 내부에서 발생하는 상황에 대한 스냅 샷을 제공합니다.
ps 필요한 정보를 원하는 형식으로 정확하게 제공 할 수있을만큼 유연합니다. 사실로, ps 많은 옵션이 있습니다. 여기에 설명 된 옵션은 가장 일반적인 요구를 충족시킵니다. 더 깊이 들어가야한다면 ps 이 기사에서 살펴본 것보다, 소개를 통해 매뉴얼 페이지를보다 쉽게 요약 할 수 있습니다.
리스팅 프로세스
사용하는 가장 쉬운 방법 ps 매개 변수없이 실행하는 것입니다.
ps

ps 명령을 실행 한 사용자가 시작한 프로세스 목록을 표시합니다.

네 개의 열은 다음과 같습니다.
- PID: 프로세스의 프로세스 ID 번호
- TTY: 사용자가 로그인 한 콘솔의 이름입니다.
- 시각: 프로세스가 사용한 CPU 처리 시간입니다.
- CMD: 프로세스를 시작한 명령의 이름
모든 사용자를위한 리스팅 프로세스
추가하여 -e (모든 프로세스를 선택하십시오) ps 실행중인 사용자뿐만 아니라 모든 사용자가 시작한 프로세스를 나열합니다. ps 명령. 긴 목록이 될 것이기 때문에 less.
ps -e | less

프로세스리스트는 less.

목록에 더 많은 항목이 있지만 이전과 동일한 4 개의 열이 표시됩니다. 물음표가있는 항목 ? 에서 TTY 터미널 창에서 열이 시작되지 않았습니다.
프로세스 계층 표시
어떤 프로세스가 다른 프로세스를 시작했는지 확인할 수 있으면 문제를 파악하거나 특정 프로세스를 식별하는 데 도움이 될 수 있습니다. 우리는 -H (계층 구조) 옵션을 사용하십시오.
ps -eH | less

들여 쓰기는 어떤 프로세스가 다른 프로세스의 부모인지 나타냅니다.

좀 더 명확하게하기 위해 ps ASCII 선을 추가하고 계층 구조를 트리로 그립니다. 이를 수행하는 옵션은 --forest 선택권.
ps -eH --forest | less

이를 통해 어떤 프로세스가 다른 프로세스의 상위 프로세스인지 쉽게 추적 할 수 있습니다.

이름별로 프로세스 나열
당신은에서 출력을 파이프 할 수 있습니다 ps …을 통하여 grep 검색어와 일치하는 이름을 가진 항목을 나열합니다. 여기서는 “firefox”검색어와 일치하는 항목을 찾고 있습니다.
ps -e | grep firefox

이 경우 출력은 관심있는 프로세스에 대한 단일 항목입니다. 물론 여러 개의 Firefox 인스턴스를 시작한 경우 목록에 둘 이상의 항목이 반환됩니다.

출력에 더 많은 열 표시
출력에 더 많은 열을 추가하려면 -f (전체 형식) 옵션.
ps -ef | less

추가 열 집합이 출력에 포함됩니다. ps.

열은 다음과 같습니다.
- UID:이 프로세스 소유자의 사용자 ID
- PID: 프로세스의 프로세스 ID
- PPID: 프로세스의 상위 프로세스 ID.
- 씨: 프로세스의 자식 수입니다.
- STIME: 시작 시간. 프로세스가 시작된 시간입니다.
- TTY: 사용자가 로그인 한 콘솔의 이름입니다.
- 시각: 프로세스가 사용한 CPU 처리 시간입니다.
- CMD: 프로세스를 시작한 명령의 이름입니다.
사용하여 -F (추가 전체 형식) 옵션으로 더 많은 열을 얻을 수 있습니다.
ps -eF | less

이번에 얻을 수있는 열은 화면을 옆으로 스크롤하여 모두 표시해야합니다.

“오른쪽 화살표”키를 누르면 디스플레이가 왼쪽으로 이동합니다.

이제 우리가 얻는 열은 다음과 같습니다.
- UID:이 프로세스 소유자의 사용자 ID
- PID: 프로세스의 프로세스 ID
- PPID: 프로세스의 상위 프로세스 ID.
- 씨: 프로세스의 자식 수입니다.
- SZ: 프로세스 이미지의 RAM 페이지 크기입니다.
- RSS: 상주 세트 크기. 프로세스에서 사용하는 스왑되지 않은 실제 메모리입니다.
- PSR: 프로세스가 지정된 프로세서.
- STIME: 시작 시간. 프로세스가 시작된 시간입니다.
- TTY: 사용자가 로그인 한 콘솔의 이름입니다.
- 시각: 프로세스가 사용한 CPU 처리 시간입니다.
- CMD: 프로세스를 시작한 명령의 이름입니다.
프로세스 ID별로 프로세스 나열
관심있는 프로세스의 프로세스 ID를 찾으면이 프로세스 ID를 ps 해당 프로세스의 세부 사항을 나열하는 명령입니다. 사용 -p (프로세스 ID로 선택) 옵션을 사용하여 다음을 수행하십시오.
ps -p 3403

이 프로세스의 세부 사항이 나열됩니다.

하나의 프로세스 ID로 제한되지 않습니다. 공백으로 구분 된 프로세스 ID 목록을 제공 할 수 있습니다.
명령 별 프로세스 나열
그만큼 -C (명령) 옵션을 사용하면 명령 이름을 사용하여 프로세스를 검색 할 수 있습니다. 즉, 프로세스를 시작한 명령의 이름입니다. 이것은 경로 이름과 매개 변수 또는 옵션을 포함 할 수있는 명령 행과 미묘하게 다릅니다.
ps -C shutter

셔터 프로세스에 대한 세부 사항이 나열됩니다.
사용자가 소유 한 프로세스 나열
특정 사용자가 소유 한 프로세스를 보려면 -u (사용자 목록) 옵션 :
ps -u mary

사용자 계정 mary가 소유 한 프로세스가 표시됩니다.

터미널 별 프로세스 나열
TTY와 관련된 프로세스를 보려면 -t (TTY로 선택) 옵션. TTY 번호없이 사용하면 -t 옵션은 현재 터미널 창과 관련된 프로세스를보고합니다.
tty
ps -t

그만큼 tty 명령은 이것이 의사 텔레 타입 0임을보고합니다. ps -t 모두 TTY와 연결되어 있습니다 pts/0.
명령 행에서 TTY 번호를 전달하면 해당 TTY와 연관된 프로세스에 대한 보고서를 받아야합니다.
ps -t 1

이번에는 프로세스가 모두 TTY와 연관되어 있습니다. pts/1.
관련 : Linux에서 TTY 란 무엇입니까? (tty 명령 사용법)
표시 할 열 선택
와 더불어 -o (형식) 옵션을 사용하면 출력에 포함 할 열을 선택할 수 있습니다 ps. 이름별로 열을 지정합니다. 열 이름의 긴 목록은 “표준 형식 지정자”섹션의 매뉴얼 페이지에서 볼 수 있습니다. 이 예에서는 CPU 시간 (pcpu) 및 인수 (args)가 출력에 포함됩니다.
ps -e -o pcpu,args | less

출력에는 요청 된 두 열만 포함됩니다.

열을 기준으로 출력 정렬
다음을 사용하여 출력을 정렬 할 수 있습니다. --sort 선택권. CPU 열을 기준으로 출력을 정렬 해 보겠습니다.
ps -e -o pcpu,args --sort -pcpu| less

하이픈 “-에” pcpu sort 매개 변수는 내림차순 정렬을 제공합니다.

CPU를 많이 사용하는 10 가지 프로세스를 확인하려면 head 명령:
ps -e -o pcpu,args --sort -pcpu | head -10

정렬되고 잘린 목록이 나타납니다.

디스플레이에 더 많은 열을 추가하면 더 많은 열을 기준으로 정렬 할 수 있습니다. 추가하자 pmem 기둥. 프로세스에서 사용중인 컴퓨터 메모리의 백분율입니다. 하이픈이 없거나 플러스 ” +“, 정렬 순서가 오름차순입니다.
ps -e -o pcpu,pmem,args --sort -pcpu,pmem | head -10

추가 열을 가져 오면 새 열이 정렬에 포함됩니다. 첫 번째 열은 두 번째 열보다 먼저 정렬되고 두 번째 열은 하이픈을 넣지 않았으므로 오름차순으로 정렬됩니다 pmem.

좀 더 유용하게 만들고 프로세스 ID 열에 추가하겠습니다 (pid) 목록에서 각 프로세스의 프로세스 번호를 볼 수 있습니다.
ps -e -o pid,pcpu,pmem,args --sort -pcpu,pmem | head -10

이제 프로세스를 식별 할 수 있습니다.

프로세스 ID 별 프로세스 종료
우리는 이름, 명령, 사용자 및 터미널을 포함한 프로세스를 식별하는 다양한 방법을 다루었습니다. 또한 CPU 사용량 및 메모리와 같은 동적 속성으로 프로세스를 식별하는 방법도 다루었습니다.
따라서 어떤 방법 으로든 실행중인 프로세스를 식별 할 수 있습니다. 프로세스 ID를 알면 다음을 사용하여 프로세스를 종료 할 수 있습니다 (필요한 경우). kill 명령. 프로세스 898을 종료하려면 다음 형식을 사용합니다.
sudo kill 898

모두 잘 진행되면 프로세스가 자동으로 종료됩니다.

관련 : 리눅스 터미널에서 프로세스를 종료하는 방법
이름으로 죽이는 프로세스
그만큼 pkill 명령을 사용하면 이름별로 프로세스를 종료 할 수 있습니다. 올바른 절차를 확인하십시오! 이 명령은 최상위 프로세스를 종료합니다.
sudo pkill top

다시 한번 좋은 소식은 없습니다. 프로세스가 자동으로 종료됩니다.

이름으로 여러 프로세스 종료
프로세스의 사본이 여러 개 있거나 프로세스가 Chrome과 같은 많은 하위 프로세스를 생성 한 경우 어떻게 제거 할 수 있습니까? 간단합니다. 우리는 killall 명령.
최고의 달리기 사본이 두 개 있습니다.
ps -e | grep top

이 명령으로 두 가지를 모두 종료 할 수 있습니다.
sudo killall top

응답이 없다는 것은 문제가 없음을 의미하므로 두 프로세스가 모두 종료되었습니다.

상단이있는 동적 뷰 가져 오기
의 출력 ps 스냅 샷보기입니다. 업데이트되지 않습니다. 프로세스의 업데이트보기를 얻으려면 top 명령. 컴퓨터에서 실행중인 프로세스를 동적으로 볼 수 있습니다. 디스플레이는 두 부분으로되어 있습니다. 화면 상단에는 텍스트 줄로 구성된 대시 보드 영역과 화면 하단에는 열로 구성된 표가 있습니다.
스타트 top 이 명령으로 :
top

열에는 프로세스에 대한 정보가 있습니다.
- PID: 프로세스 ID
- 사용자: 프로세스 소유자의 이름
- PR: 프로세스 우선 순위
- NI: 프로세스의 좋은 가치
- VIRT: 프로세스에서 사용되는 가상 메모리
- RES: 프로세스에서 사용되는 상주 메모리
- SHR: 프로세스에서 사용하는 공유 메모리
- 에스: 프로세스 상태. 이 필드에 사용할 수있는 값은 아래 목록을 참조하십시오.
- % CPU: 마지막 업데이트 이후 프로세스에서 사용한 CPU 시간의 점유율
- % MEM: 사용 된 실제 메모리 공유
- 시간 +: 작업에 사용 된 총 CPU 시간 (100 분의 1 초)
- 명령: 명령 이름 또는 명령 줄 (이름 및 명령 줄 매개 변수) 명령 열을 볼 수 없으면 “오른쪽 화살표”키를 누르십시오.
프로세스 상태는 다음 중 하나 일 수 있습니다.
- 디: 무정전 수면
- 아르 자형: 달리기
- 에스: 자
- 티: 추적 됨 (중지됨)
- 지: 좀비
“Q”키를 눌러 top.
관련 : 알아야 할 중요한 Linux 명령
프로세스를 종료하기 전에
그것이 당신이 추구하는 것인지 확인하고 문제를 일으키지 않는지 확인하십시오. 특히, 그것은 확인 가치가 -H (계층 구조) --forest 잊어 버린 중요한 자식 프로세스가 없는지 확인하는 옵션입니다.








