Linux에서는 실행 중인 프로그램 인스턴스를 프로세스라고 합니다. Linux 컴퓨터에서 작업할 때 현재 실행 중인 프로세스를 확인해야 하는 경우가 있습니다.
실행 중인 프로세스에 대한 정보를 찾는 데 사용할 수 있는 명령은 여러 가지가 있으며, ps, pstree 및 top이 가장 일반적으로 사용됩니다.
이 문서에서는 ps 명령을 사용하여 현재 실행 중인 프로세스를 나열하고 해당 프로세스에 대한 정보를 표시하는 방법에 대해 설명합니다.
ps 명령 사용 방법
ps 명령에 대한 일반적인 구문은 다음과 같습니다.
ps [OPTIONS]
기록 및 호환성을 위해 ps 명령에는 다음과 같은 몇 가지 다른 유형의 옵션이 허용됩니다.
- UNIX 스타일 옵션(단일 대시 앞에 있음)입니다.
- 대시 없이 사용되는 BSD 스타일 옵션입니다.
- GNU 긴 옵션 앞에 대시가 두 개 있습니다.
여러 옵션 유형을 혼합할 수 있지만, 일부 경우에는 충돌이 나타날 수 있으므로 하나의 옵션 유형을 유지하는 것이 좋습니다.
BSD 및 UNIX 옵션을 그룹화할 수 있습니다.
가장 간단한 형식에서 옵션 없이 사용할 경우 p는 현재 셸에서 실행 중인 최소 두 개의 프로세스, 셸 자체 및 명령이 호출되었을 때 셸에서 실행되는 프로세스에 대해 네 개의 정보 열을 인쇄합니다.
출력에는 셸(배시) 및 이 셸에서 실행 중인 프로세스(ps, 입력한 명령)에 대한 정보가 포함됩니다.
ps
# PID TTY TIME CMD
# 1809 pts/0 00:00:00 bash
# 2043 pts/0 00:00:00 ps
네 열에는 PID, TTY, TIME 및 CMD 레이블이 지정됩니다.
PID - 프로세스 ID입니다. 일반적으로 ps 명령을 실행할 때 사용자가 찾는 가장 중요한 정보는 프로세스 PID입니다. PID를 알면 오작동하는 프로세스를 제거할 수 있습니다.
TTY - 프로세스의 제어 터미널 이름입니다.
TIME - 프로세스의 누적 CPU 시간(분 및 초)입니다.
CMD - 프로세스를 시작하는 데 사용된 명령의 이름입니다.
위의 출력은 정보가 많이 포함되어 있지 않아 유용하지 않습니다. ps 명령의 실제 전력은 추가 옵션과 함께 실행될 때 제공됩니다.
ps 명령은 특정 프로세스 그룹 및 프로세스에 대한 다양한 정보를 표시하는 데 사용할 수 있는 수많은 옵션을 허용하지만 일상적인 사용에서는 소수의 옵션만 필요합니다.
ps는 다음 옵션 조합과 함께 가장 자주 사용됩니다.
BSD 양식
ps aux
옵션은 ps에게 모든 사용자의 프로세스를 표시하도록 알려줍니다. 터미널과 연결되지 않은 프로세스 및 그룹 리더의 프로세스만 표시되지 않습니다.
u는 프로세스에 대한 자세한 정보를 제공하는 사용자 지향 형식을 나타냅니다.
x 옵션은 제어 터미널 없이 프로세스를 나열하도록 ps에 지시합니다. 이러한 프로세스는 주로 부팅 시간에 시작되고 백그라운드에서 실행되는 프로세스입니다.
이 명령은 USER, PID, %CPU, %MEM, VSZ, RSS, STAT, START, TTY, TIME 및 CMD 레이블이 지정된 열한 개에 정보를 표시합니다.
# USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
# root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init
# root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd]
# ...
PID, TTY, TIME, CMD 라벨은 이미 설명했습니다. 다음은 다른 레이블에 대한 설명입니다.
USER - 프로세스를 실행하는 사용자입니다.
%CPU - 프로세스의 CPU 사용률입니다.
%MEM - 시스템의 물리적 메모리에 대한 프로세스 상주 설정 크기의 백분율입니다.
VSZ - KiB에 있는 프로세스의 가상 메모리 크기입니다.
RSS - 프로세스가 사용 중인 실제 메모리의 크기입니다.
STAT - Z(줌비), S(절전) 및 R(실행)과 같은 프로세스 상태 코드입니다.
START - 명령이 시작된 시간입니다.
f 옵션은 ps에게 상위-하위 프로세스의 트리 보기를 표시하도록 합니다.
ps auxf
ps 명령을 사용하여 출력을 정렬할 수도 있습니다. 예를 들어 메모리 사용량을 기준으로 출력을 정렬하려면 다음을 사용합니다.
ps aux --sort=-%mem
UNIX 양식
ps -ef
-e 옵션은 ps에 모든 프로세스를 표시하도록 지시합니다.
-f는 프로세스에 대한 자세한 정보를 제공하는 전체 형식 목록입니다.
이 명령은 UID, PID, PPID, C, STIME, TIME 및 CMD 레이블이 지정된 8개 열에 정보를 표시합니다.
# UID PID PPID C STIME TTY TIME CMD
# root 1 0 0 19:47 ? 00:00:01 /sbin/init
# root 2 0 0 19:47 ? 00:00:00 [kthreadd]
# ...
아직 설명되지 않은 레이블에는 다음과 같은 의미가 있습니다.
UID - 프로세스를 실행하는 사용자인 USER와 동일합니다.
PPID - 상위 프로세스의 ID입니다.
C - %CPU와 동일, 프로세스 CPU 활용도입니다.
STIME - 명령이 시작된 시간인 START와 동일합니다.
특정 사용자로 실행 중인 프로세스만 보려면 다음 명령을 입력합니다. 여기서 linuxize는 사용자의 이름입니다.
ps -f -U jjeongil -u jjeongil
사용자 정의 형식
o 옵션을 사용하면 ps 명령을 실행할 때 표시할 열을 지정할 수 있습니다.
예를 들어 PID 및 COMMAND에 대한 정보만 인쇄하려면 다음 명령 중 하나를 실행합니다.
ps -efo pid,comm
ps auxo pid,comm
다른 명령과 함께 ps를 사용합니다.
p는 파이프를 통해 다른 명령과 함께 사용할 수 있습니다.
ps 명령의 출력을 표시하려면 한 번에 한 페이지씩 ps 명령어를 less 명령어로 파이핑합니다.
ps -ef | less
ps 명령의 출력은 grep로 필터링할 수 있습니다. 예를 들어 루트 사용자에 속하는 프로세스만 표시하려면 다음을 실행합니다.
ps -ef | grep root
ps 명령은 Linux 시스템에서 문제를 해결할 때 가장 일반적으로 사용되는 명령 중 하나입니다. 여러 가지 옵션이 있지만 대부분의 사용자는 실행 중인 프로세스에 대한 정보를 수집하기 위해 psaux 또는 ps -ef를 사용합니다.
ps에 대한 자세한 내용을 보려면 터미널에 manps를 입력합니다.
'SW > 리눅스' 카테고리의 다른 글
Linux : Cp 명령어, 예제, 사용 방법 (파일 복사) (0) | 2021.11.20 |
---|---|
Linux : Debian 10 : Squid Proxy 설치, 구성 방법, 예제, 명령어 (0) | 2021.11.19 |
Linux : Debian 10 : Git 설치 방법, 예제, 명령어 (0) | 2021.11.17 |
Linux : 부팅 USB 드라이브 생성 방법, 예제, 명령어 (0) | 2021.11.16 |
Linux : CentOS 7 업데이트 설치 방법, 예제, 명령어 (0) | 2021.11.15 |