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 / 리눅스 디렉토리 구조와 주요 디렉토리별 용도

Linux / 리눅스 디렉토리 구조와 주요 디렉토리별 용도

리눅스의 /etc, /var, /usr, /home, /proc, /dev 등 주요 디렉토리별 용도와 이름의 의미를 정리합니다. 리눅스 파일시스템 구조를 처음 배우거나 서버 관리에 필요한 디렉토리를 확인할 때 참고할 수 있습니다.

Linux / 명령어

Linux / 명령어

리눅스에서 자주 사용하는 명령어를 파일, 텍스트, 권한, 프로세스, 시스템, 디스크, 네트워크와 패키지 관리 작업별로 정리했습니다. 링크가 있는 명령어는 자세한 사용법과 예제를 확인할 수 있습니다.

Linux / 명령어 / history - 명령어 실행 기록 확인

Linux / 명령어 / history - 명령어 실행 기록 확인

Bash history 명령어로 이전 명령을 조회·검색·재실행·삭제하는 방법을 설명합니다. ~/.bash_history, HISTCONTROL, HISTTIMEFORMAT, histappend와 여러 터미널 기록 동기화 방법도 함께 정리합니다.

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

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

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

Linux / 명령어 / modinfo - 커널 모듈의 설명과 매개변수 확인

Linux / 명령어 / modinfo - 커널 모듈의 설명과 매개변수 확인

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

Linux / 명령어 / bzip2 - 파일을 bzip2 형식으로 압축하기

Linux / 명령어 / bzip2 - 파일을 bzip2 형식으로 압축하기

Linux bzip2 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / printenv - 환경 변수 값 출력

Linux / 명령어 / printenv - 환경 변수 값 출력

Linux printenv 명령어로 전체 또는 특정 환경 변수 값을 확인하는 방법을 설명합니다. 셸 변수와 환경 변수의 차이, 종료 상태, NUL 구분 출력과 env와의 차이를 정리합니다.

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

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

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

Linux / 명령어 / zip - 여러 파일을 ZIP 아카이브로 묶기

Linux / 명령어 / zip - 여러 파일을 ZIP 아카이브로 묶기

Linux zip 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / nohup - 로그아웃 후에도 명령 계속 실행

Linux / 명령어 / nohup - 로그아웃 후에도 명령 계속 실행

Linux nohup 명령어로 로그아웃 후에도 작업을 계속 실행하는 방법을 설명합니다. 백그라운드 실행, 입출력 리디렉션, PID 확인과 종료, 로그 관리 및 systemd·tmux와의 차이를 정리합니다.