Linux / 명령어 / pgrep - 조건에 맞는 프로세스 ID 검색

pgrep는 프로세스 이름과 사용자 등의 조건으로 실행 중인 프로세스 ID를 찾습니다. 대상 PID를 확인하는 명령이며 그 자체가 프로세스를 종료하지는 않습니다.

pgrep 명령어란?

기본 패턴은 프로세스 이름에 정규 표현식으로 적용됩니다. 이름 전체가 정확히 같아야 한다면 -x, 전체 명령줄까지 검사하려면 -f를 사용합니다. -f는 더 넓게 일치할 수 있으므로 결과를 반드시 확인하세요.

기본 문법

pgrep [옵션] 패턴

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man pgrep으로 현재 시스템의 설명을 확인하세요.

사용 예제

이름으로 PID 검색

일치하는 PID를 줄마다 출력합니다.

pgrep sshd

이름과 PID 함께 보기

어떤 작업이 선택됐는지 표시해 실수를 줄입니다.

pgrep -a sshd

사용자와 정확한 이름 제한

다른 사용자의 동명 프로세스까지 선택하지 않도록 범위를 줄입니다.

pgrep -u alice -x python3

검색 결과가 PID로 나오는 이유

pgrep은 조건에 맞는 프로세스의 PID를 출력합니다. -a를 쓰면 PID와 전체 명령행을 함께 보여 확인하기 쉽습니다.

pgrep -a sshd

예시 출력(해당 프로세스가 실행 중인 시스템에서):

1234 /usr/sbin/sshd -D

아무 줄도 나오지 않으면 일치하는 프로세스가 없거나 검색 권한·조건 문제일 수 있습니다. 기본 검색은 프로세스 이름을 대상으로 하며, 전체 명령행까지 찾으려면 -f를 사용합니다. 넓은 패턴은 예상 밖의 프로세스를 포함할 수 있으므로 종료 명령에 넘기기 전 결과를 확인하세요.

주요 옵션과 형식

옵션·형식 설명
-a PID와 전체 명령줄을 함께 표시합니다.
-x 프로세스 이름 전체가 패턴에 맞아야 합니다.
-f 프로세스 이름 대신 전체 명령줄을 검사합니다.
-u 사용자 유효 사용자 ID로 범위를 제한합니다.
-n / -o 가장 최근 또는 오래된 일치 하나를 고릅니다.

사용할 때 주의할 점

프로세스 이름은 보이는 명령줄과 다를 수 있고, 긴 이름은 구현의 내부 한도에 영향을 받을 수 있습니다. -f는 예상보다 많은 작업을 찾을 수 있습니다. 찾은 PID를 kill에 전달하기 전에 ps -p PID -o cmd= 등으로 다시 확인하세요.

자주 묻는 질문

pgrep 결과가 없으면 오류인가요?

대개 조건에 맞는 프로세스가 없다는 뜻이며 종료 상태가 0이 아닐 수 있습니다. 서비스 상태를 확정하려면 실행 시점과 검색 조건도 확인하세요.

공식 문서

옵션의 정확한 동작과 구현별 차이는 pgrep 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / last - 로그인 기록과 시스템 부팅 이력 확인

Linux / 명령어 / last - 로그인 기록과 시스템 부팅 이력 확인

Linux last 명령어로 사용자 로그인·로그아웃, 재부팅과 실패한 로그인 이력을 확인하는 방법을 설명합니다. wtmp·btmp, 기간 필터, 상태 해석과 보안 조사 시 한계를 함께 정리합니다.

Linux / 명령어 / htop - 대화형 프로세스 목록 탐색

Linux / 명령어 / htop - 대화형 프로세스 목록 탐색

Linux htop 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / less - 긴 파일을 검색하며 페이지 단위로 보기

Linux / 명령어 / less - 긴 파일을 검색하며 페이지 단위로 보기

Linux less 명령어로 긴 텍스트와 명령 출력을 페이지 단위로 탐색하는 방법을 설명합니다. 검색, 이동, 실시간 갱신과 파이프 사용법을 정리합니다.

Linux / 명령어 / ps - 현재 프로세스 상태 확인

Linux / 명령어 / ps - 현재 프로세스 상태 확인

Linux ps 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / pkill - 이름으로 프로세스에 시그널 보내기

Linux / 명령어 / pkill - 이름으로 프로세스에 시그널 보내기

Linux pkill 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / ssh-keygen - SSH 키 쌍 생성과 지문 확인

Linux / 명령어 / ssh-keygen - SSH 키 쌍 생성과 지문 확인

Linux ssh-keygen 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / su - 사용자 계정 전환

Linux / 명령어 / su - 사용자 계정 전환

Linux su 명령어로 다른 사용자 권한의 셸과 단일 명령을 실행하는 방법을 설명합니다. su와 su --login 차이, 환경 변수, PAM 인증, sudo·runuser 선택 기준과 보안 주의사항을 정리합니다.

Linux / 네트워크 / IP 확인하는 방법

Linux / 네트워크 / IP 확인하는 방법

Linux에서 ip address와 ip route get으로 인터페이스 주소와 실제 출발지 IP를 확인하는 방법을 설명합니다. 사설·공인 IP, IPv4·IPv6와 컨테이너 환경의 차이도 정리합니다.

Linux / 명령어 / sudo - 다른 사용자 권한으로 명령 실행

Linux / 명령어 / sudo - 다른 사용자 권한으로 명령 실행

Linux sudo 명령어로 허용된 명령을 root 또는 다른 사용자 권한으로 실행하는 방법을 설명합니다. 주요 옵션, 인증 캐시, 리디렉션 문제, visudo와 최소 권한 sudoers 설정 원칙을 정리합니다.

Linux / 명령어 / time - 명령 실행 시간 측정

Linux / 명령어 / time - 명령 실행 시간 측정

Linux time 명령어로 명령과 파이프라인의 실행 시간 및 자원 사용량을 측정하는 방법을 설명합니다. Bash 예약어와 GNU /usr/bin/time의 차이, 출력 저장과 정확한 비교 방법을 정리합니다.