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 관련 공식 문서에서 확인할 수 있습니다.









