50% 할인 모든 계획, 제한된 시간. 시작 시간 $2.48/mo
10분 남음
서버 및 OS

프로세스 관리 마스터링 – Linux ps aux 명령

에이다 러브굿 By 에이다 러브굿 10분 읽기 2024년 7월 11일에 업데이트됨
리눅스 ps aux 명령

발생한 Linux 문제에 대한 답을 찾기 위해 브라우저에 최소 5개의 다른 탭이 열려 있습니까?
이 행동은 당신이나 일반적인 인간에게만 국한된 것이 아닙니다. 기계도 멀티 태스킹을 합니다. 그리고 여러분과 마찬가지로 Linux도 멀티태스커이며 여러 프로세스가 동시에 진행됩니다. 전문적으로 Linux를 사용하는 개발자이든 일상적인 활동을 위해 Linux를 사용하는 일반 사용자이든 시스템에 대한 완전한 제어를 유지하려면 이러한 병렬 프로세스를 이해할 수 있어야 합니다. 프로세스 관리와 시스템 제어는 Linux 시스템을 실행하는 데 필수적인 측면입니다.

시스템에서 실행되는 프로세스를 효율적으로 관리하고, 실시간으로 무슨 일이 일어나고 있는지 확인하고, 모든 백그라운드 프로세스에 대한 일반적인 아이디어를 갖고, 시스템 리소스를 제어하려면 프로세스 관리에 대한 기술적 지식이 필요합니다. ps aux 명령은 프로세스 관리 및 시스템 제어에 중요한 역할을 하는 강력한 명령입니다. 이번 포스트에서는 ps aux 명령과 그 사용 사례에 대해 자세히 알아 보겠습니다. 또한 Linux 프로세스 작동 방식의 기본 사항도 다룰 것입니다.

Linux의 프로세스 관리 이해

Linux로 작업할 때 시스템과의 상호 작용은 대부분 명령 형식으로 이루어집니다. Linux에서 프로세스는 명령을 실행하는 것입니다. Linux 프로세스 관리에는 명령이 시작된 프로세스를 조작하는 작업이 포함됩니다. 프로세스를 종료하거나 시작하거나 종료된 프로세스를 재개할 수 있습니다. 진행 중인 명령을 조작할 수도 있습니다.

Linux 프로세스에는 두 가지 유형이 있습니다.

  • 포그라운드 프로세스
  • 백그라운드 프로세스

Linux 포그라운드 프로세스

포그라운드 프로세스는 적극적으로 실행되는 프로세스이며 일반적으로 사용자와의 지속적이고 실시간 상호 작용이 필요합니다. 포그라운드 프로세스가 실행 중이면 다른 프로세스의 실행이 일시 중지됩니다. 따라서 다른 명령을 실행할 수 없습니다. 포그라운드 프로세스는 키보드로부터 표준 입력 또는 stdin으로 입력을 받습니다. 더 이상의 혼란을 방지하기 위해 stdin 및 stdout은 stderr과 함께 Linux 데이터 스트림입니다. 이는 기본적으로 사용자가 프로세스와 상호 작용하고 이에 대한 데이터를 제공하는 방식입니다. 기능과 입력을 기반으로 프로세스에서 생성되는 표준 출력 또는 stdout이 있습니다. 포그라운드 프로세스는 Linux의 기본 실행 모드입니다.

Linux 백그라운드 프로세스

백그라운드 프로세스는 사용자 상호 작용이 필요하지 않고 터미널의 전체 공간을 독점적으로 차지하지 않아 다른 프로세스의 실행을 허용하므로 포그라운드 프로세스와 정반대입니다. 백그라운드 프로세스의 입력 및 출력 유형도 다릅니다. 그들은 일반적으로 stdin을 사용하지 않습니다. 그러나 프로세스 결과는 stdout으로 표시될 수 있습니다. 백그라운드 프로세스의 출력 표시는 다른 포그라운드 프로세스의 출력과 동시에 발생합니다. 따라서 다른 중요한 작업을 중단하지 않고도 백그라운드 프로세스의 진행 상황이나 결과를 확인할 수 있습니다.

Linux에서 다양한 작업을 실행하는 것은 명령줄에 의존하기 때문에 포그라운드 프로세스는 문제가 될 수 있지만 백그라운드에서 프로세스를 실행하면 터미널이 다른 작업을 수행할 필요가 없습니다. 따라서 여기서는 포그라운드 작업을 백그라운드에 배치하는 것이 합리적입니다. 하기 위해 프로세스를 백그라운드로 보내기 먼저 포그라운드에서 실행되는 것을 중지해야 합니다. CTRL+Z를 누르면 간단히 완료됩니다. 그런 다음 bg 명령을 입력하면 종료된 프로세스가 백그라운드에서 다시 실행됩니다. fg 명령은 프로세스를 되돌려 전경으로 가져옵니다.

프로세스 상태; 구문, 명령 및 출력 해석

Linux에서 효과적인 프로세스 관리를 위해서는 ps aux 명령으로 모니터링할 수 있는 프로세스 상태를 이해해야 합니다. 하지만 ps aux 명령을 더 자세히 살펴보기 전에 다양한 프로세스 상태에 대해 알아 보겠습니다. 여러 유형의 프로세스와 프로세스 상태가 있지만 다음은 가장 일반적인 유형을 나열한 표입니다.

프로세스 상태 설명
달리기(R) 프로세스가 현재 실행 중이며 CPU 리소스를 차지하고 있습니다.
자고 있는 중단 가능(S) 프로세스가 특정 입력이나 이벤트가 다시 실행되기를 기다리고 있습니다. 현재 CPU 리소스를 사용하고 있지 않습니다. 리소스를 사용할 수 있거나 신호가 제공되면 프로세스가 다시 시작됩니다.
무정전(D) 중단 가능한 절전 모드에 있는 프로세스와 마찬가지로 중단 불가능한 절전 프로세스는 CPU 리소스를 사용하지 않습니다. 유일한 차이점은 신호에 반응하지 않고 리소스를 사용할 수 있을 때만 다시 살아난다는 것입니다.
중지됨(T) 사용자 입력 또는 특정 이벤트로 인해 프로세스가 일시 중지되었습니다. 중지된 상태의 프로세스는 CPU 리소스를 사용하지 않습니다.
데드(X) 프로세스가 종료되어 더 이상 존재하지 않습니다.

이러한 프로세스 상태를 잘 이해하는 것은 Linux 시스템을 효과적으로 관리하고 문제를 해결하는 데 중요한 측면입니다. 이제 Linux에서 프로세스 상태를 가져오는 구문과 명령, 그리고 출력을 해석하는 방법을 살펴보겠습니다.

프로세스 상태를 얻기 위한 구문 및 명령

ps 명령의 기본 구문을 사용하여 Linux에서 프로세스 상태를 가져올 수 있습니다.

ps [process name]

ps 명령과 함께 사용되는 다른 옵션도 있습니다:

보조: 이 옵션은 시스템에서 실행 중인 모든 프로세스의 전체 목록을 표시합니다. 프로세스 ID(PID), 상위 프로세스 ID(PPID), CPU 및 메모리 사용량, 프로세스 상태 등의 정보를 제공합니다. ps aux 명령이 제공하는 출력은 기본 ps 명령보다 훨씬 깔끔하고, 가독성이 높으며, 유용한 정보가 많이 포함되어 있습니다.

ef: 이 옵션은 트리 구조의 프로세스 계층 구조를 포함하여 추가 세부 정보가 포함된 전체 형식의 프로세스 목록을 표시합니다.

l: 이 옵션은 긴 목록 형식을 제공하여 프로세스에 대한 자세한 정보를 제공합니다.

출력 이해

원하는 옵션과 함께 ps 명령을 실행하면 현재 시스템에서 실행 중인 프로세스를 나타내는 출력이 생성됩니다. 출력은 프로세스 ID(PID), 상위 프로세스 ID(PPID), CPU 사용량, 메모리 사용량, 프로세스 상태, 터미널 유형 및 명령 이름을 포함하여 다양한 프로세스 속성을 표시하는 열로 구성됩니다.

각 열의 의미에 대한 설명은 다음과 같습니다.

PID: 이 열에는 프로세스의 고유 ID가 표시됩니다.

TTY: 이 열에는 사용자가 로그인한 터미널 유형이 표시됩니다.

시간: 이 열은 이 프로세스에서 사용되는 CPU의 양을 분과 초 단위로 표시합니다.

명령: 이 열은 이 프로세스를 시작한 명령의 이름을 나타냅니다.

ps 명령으로 제공되는 정보를 분석하면 Linux 시스템의 동작에 대한 더 깊은 통찰력을 얻을 수 있습니다.

ps 명령을 사용한 프로세스 관리를 위한 고급 ps 기술

ps 명령의 고급 기능 중 일부와 이를 효과적으로 활용하는 방법을 살펴보겠습니다.

1. 프로세스 정렬

ps aux 명령을 사용하면 다른 열을 기준으로 최종 출력을 정렬할 수 있습니다. 예를 들어, 프로세스 ID나 CPU 사용량을 기준으로 프로세스를 정렬하여 원하는 순서로 볼 수 있습니다.

다음은 ps aux를 사용하여 프로세스 ID를 기준으로 프로세스를 정렬하는 예입니다.

ps aux –-sort pid

head 명령은 출력의 처음 5개 행만 가져오는 데 사용됩니다.

ps aux 정렬 pid

2. 프로세스 트리 시각화

프로세스의 상위-하위 관계를 명확하게 보려면 포리스트 옵션과 함께 ps 명령을 사용할 수 있습니다.

ps -aux --forest

Linux 프로세스의 상위-하위 관계

트리와 같은 패턴으로 프로세스 간의 관계를 보려면 pstree 명령을 사용할 수도 있습니다. 이 명령은 더 이해하기 쉽고 프로세스 간의 계층 구조를 완벽하게 보여주는 출력을 생성합니다. 이 명령을 사용하려면 다음 명령을 입력하십시오.

pstree [pid or username]

이 명령에 PID를 제공하면 해당 프로세스를 트리의 루트로 간주하도록 명령에 지시할 수 있습니다.

3. 필터링 프로세스

특정 프로세스 그룹으로 작업하고 싶다고 상상해 보십시오. 예를 들어, 사용자 중 한 명의 모든 프로세스를 나열하려고 합니다. ps 명령을 사용하여 특성을 기반으로 프로세스를 필터링할 수 있습니다. 이 예에서는 사용자 이름을 기준으로 프로세스를 필터링했습니다.

ps -u [username]

ps 명령을 사용하여 Linux 프로세스 필터링

그리고 ps aux grep 명령은 명령에 제공하는 패턴이나 키워드를 기반으로 프로세스를 필터링할 수 있습니다. 아래 코드를 예시로 살펴보세요.

ps aux grep 명령 예

이 명령은 먼저 모든 프로세스를 나열하고 출력을 grep 명령으로 전달하여 프로세스 ID를 기준으로 긴 목록을 필터링합니다. 위 이미지에서는 정보에 숫자 15가 있는 모든 프로세스의 목록을 볼 수 있습니다.

ps 명령과 해당 기능에 대한 자세한 내용은 이 명령의 매뉴얼 페이지를 참조하세요. 아래 코드는 매뉴얼 페이지를 표시합니다.

man ps

Linux에서 작업 우선순위 관리

Linux에서 프로세스 관리가 실제로 어떻게 작동하는지 더 잘 설명하려면 프로세스 우선 순위와 이를 변경하는 방법도 다루어야 합니다. 여러 프로세스를 실행하고 있고 CPU에 작업이 과부하된 상황을 상상해 보세요. 이러한 상황에서 리소스가 제대로 작동하도록 관리하려면 실행 중인 작업의 우선 순위를 변경해야 합니다. Linux의 각 프로세스에는 우선순위 값이 있습니다. 이 값은 커널이 작업 우선 순위를 지정하는 데 도움이 됩니다. 우선순위 번호의 범위는 -20부터 19까지이며, 19는 가장 덜 중요한 작업이고 -20은 가장 긴급한 작업입니다. 우선순위가 가장 높은 프로세스는 다른 프로세스에 비해 더 많은 CPU 시간을 받습니다. 우선순위 값은 종종 "좋은" 값으로 지칭되며, 좋은 값이 낮을수록 더 높은 우선순위를 나타냅니다.

nice 및 renice 명령을 사용하여 시스템 리소스를 효율적으로 할당할 수 있습니다.

하지만 프로세스 우선순위를 변경하기 전에 ps 명령의 첫 번째 사용 사례를 살펴보겠습니다.

  • ps 명령을 사용하여 모든 프로세스의 현재 우선순위 표시:

이 명령은 프로세스 ID(PID), 명령 이름 및 현재 우선순위(nice 값)와 함께 모든 프로세스를 나열합니다.

 

ps -eo pid,cmd,nice

ps 명령을 사용하여 모든 프로세스의 우선 순위 얻기

  • nice 명령을 사용하여 기본적으로 높은 우선순위로 프로세스를 시작합니다.

다음 명령을 사용하여 원하는 우선순위로 프로세스를 시작할 수 있습니다.

nice -n [priority] [command]

[priority]를 우선 순위 수준을 나타내는 원하는 음수 값으로 바꾸고 [command]를 실행하려는 명령으로 바꿉니다.

예는 다음과 같습니다.

기본적으로 높은 우선순위로 프로세스 시작

  • 이미 실행 중인 명령의 우선순위 변경:
renice -n [priority] -p [PID]

조작하려는 프로세스의 프로세스 ID를 [PID]로 바꿉니다.

모든 종류의 작업을 수행할 수 있는 강력한 Linux 시스템을 갖고 싶다면 리눅스 VPS 당신을 위한 최고의 솔루션입니다. Cloudzy 선호하는 배포판이 사전 설치된 다양한 Linux VPS 계획을 제공합니다. 연중무휴 24시간 지원, 30일 환불 정책, 99.95% 가동 시간 보장과 같은 많은 유리한 특성을 통해 Cloudzy는 가격을 낮게 유지했습니다. Linux VPS 가격은 월 $4.95부터 시작됩니다.

리눅스 VPS 호스팅

가장 저렴한 가격으로 웹 사이트 또는 원격 데스크톱 호스팅을 위한 경제형 또는 프리미엄 Linux VPS를 구입하세요. Linux KVM에서 실행되는 VPS는 효율성을 높이고 속도를 높이기 위해 NVMe SSD 스토리지를 갖춘 강력한 하드웨어에서 작동합니다.

자세히 알아보기

결론

결론적으로 프로세스 관리와 시스템 제어를 마스터하는 것은 시스템 관리자, 더 많은 것을 배우고 싶어하는 Linux 매니아, 일반 Linux 사용자에게 필수입니다. ps 명령의 기능에 대해 배우면 프로세스 관리를 쉽게 배울 수 있습니다. 이것이 바로 이 기사에서 ps 명령의 중요한 사용 사례를 논의하고 독자에게 Linux 프로세스에 대한 소개를 제공한 이유입니다.

FAQ

Linux에서 ps aux 명령은 무엇입니까?

ps aux Linux 명령은 실행 중인 프로세스에 대한 정보를 얻기 위해 Linux에서 일반적으로 사용되는 명령입니다. 프로세스 ID(PID), CPU 및 메모리 사용량, 실행 상태, 기타 중요한 세부 정보를 포함하여 사용자에게 친숙한 형식으로 프로세스의 포괄적인 목록을 제공할 수 있습니다.

Linux의 두 가지 유형의 프로세스는 무엇입니까?

포그라운드 프로세스와 백그라운드 프로세스. 포그라운드 프로세스는 실행 중에 터미널을 점유하며 다른 실행을 허용하지 않습니다. 백그라운드 프로세스는 백그라운드에서 실행되며 전체 터미널을 차지하지 않습니다.

내 Linux 시스템에서 실행 중인 프로세스 목록을 어떻게 볼 수 있나요?

Linux 시스템에서 실행 중인 프로세스 목록은 ps, top 또는 htop과 같은 명령을 사용하여 얻을 수 있습니다. 예를 들어, Linux ps aux 명령은 실행 중인 모든 프로세스에 대한 자세한 정보를 제공합니다.

공유하다

블로그에서 더 보기

계속 읽어보세요.

Cosmos Cloud로 실행할 수 있는 최고의 자체 호스팅 앱 Cosmos 대시보드 주변에 앱 패널이 있는 표지 이미지입니다.
서버 및 OS

Cosmos Cloud로 실행할 수 있는 최고의 셀프 호스팅 앱: 파일, 미디어, 비밀번호, 자동화 등!

어쩌면 Cosmos Cloud를 설정했는데 이제 어떤 앱이 이에 잘 어울리는지 확인하고 싶을 수도 있고, 아직 Cosmos를 결정하지도 않았는데 업무 환경에 얼마나 잘 맞는지 확인하고 싶을 수도 있습니다.

닉 실버닉 실버 16분 읽기
Docker 앱 관리를 위한 Portainer 및 Cosmos Cloud는 하이브리드 설정 다이어그램과 네온 옵스 및 액세스 블록을 다룹니다.
서버 및 OS

Portainer vs Cosmos Cloud: Docker 앱 관리에 가장 적합

이미 Docker를 알고 있고 점점 늘어나는 앱 스택을 더 깔끔하게 실행하는 방법을 원한다면 Portainer와 Cosmos Cloud에 대한 짧은 답변을 참조하세요. Portainer는 다이렉트에 대한 더 강력한 선택입니다.

닉 실버닉 실버 14분 읽기
하나의 추상 클라우드 네트워크 세계 내에서 세 가지 자체 호스팅 경로를 보여주는 Cosmos Cloud, CasaOS, Umbrel 기능 그래픽입니다.
서버 및 OS

Cosmos Cloud vs CasaOS vs Umbrel: 귀하의 설정에 적합한 자체 호스팅 플랫폼은 무엇입니까?

짧은 대답은 CasaOS가 여전히 시작하기 가장 쉬운 곳이고, Umbrel이 가장 깔끔하게 선별된 느낌을 갖고 있으며, 도메인에 대한 더 엄격한 제어를 원할 경우 Cosmos Cloud가 더 적합하다는 것입니다.

닉 실버닉 실버 11분 읽기

배포할 준비가 되셨나요? 월 $2.48부터

2008년부터 독립 클라우드. AMD EPYC, NVMe, 40Gbps. 14일 환불.