> 프로세스 관리 > pgrep

pgrep: 프로세스 ID 찾기

`pgrep` 명령어는 실행 중인 프로세스 목록에서 특정 기준(예: 프로세스 이름, 사용자, 전체 명령줄)에 따라 프로세스를 검색하고, 해당 프로세스의 ID(PID)를 출력합니다. 이는 `ps` 명령과 `grep` 명령을 조합하는 것보다 더 효율적이고 간편하게 원하는 프로세스를 찾을 수 있게 해줍니다.

개요

`pgrep`은 프로세스 이름, 사용자 ID, 터미널, 부모 프로세스 ID 등 다양한 조건으로 프로세스를 필터링하여 해당 PID를 반환합니다. 스크립트에서 특정 프로세스를 찾아 제어하거나 상태를 확인할 때 유용하게 사용됩니다.

주요 기능

  • 정규 표현식 기반 검색 지원
  • 사용자/그룹별 프로세스 필터링
  • 전체 명령줄(full command line) 검색 가능
  • 가장 오래된 또는 최신 프로세스 선택 옵션 제공

주요 옵션

검색 조건

출력 형식 및 정렬

생성된 명령어:

명령어를 조합해 보세요.

설명:

`pgrep` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

특정 프로세스 PID 찾기

pgrep sshd

`sshd`라는 이름의 프로세스 ID를 찾습니다.

사용자별 프로세스 PID 찾기

pgrep -u root

`root` 사용자가 실행하는 모든 프로세스의 ID를 찾습니다.

PID와 이름 함께 출력

pgrep -l firefox

`firefox` 프로세스의 ID와 이름을 함께 출력합니다.

전체 명령줄로 검색

pgrep -f "apache2.*worker"

전체 명령줄에 `apache2`와 `worker`가 모두 포함된 프로세스의 ID를 찾습니다.

정확히 일치하는 프로세스 찾기

pgrep -x ssh

이름이 정확히 `ssh`인 프로세스의 ID를 찾습니다. (`sshd`는 제외)

가장 최근 프로세스 찾기

pgrep -n chrome

`chrome` 프로세스 중 가장 최근에 시작된 프로세스의 ID를 찾습니다.

팁 & 주의사항

`pgrep`은 강력하지만, 잘못 사용하면 의도치 않은 프로세스를 종료하거나 영향을 줄 수 있으므로 주의해야 합니다.

pkill과의 연동

`pgrep`으로 찾은 PID를 `kill` 명령에 수동으로 전달하는 대신, `pkill` 명령을 사용하면 `pgrep`과 동일한 검색 조건으로 프로세스를 직접 종료하거나 시그널을 보낼 수 있어 편리합니다. 예를 들어, `pkill -f "nginx.*worker"`는 `nginx` 워커 프로세스를 직접 종료합니다.

정규 표현식 활용

`pgrep`은 기본적으로 정규 표현식을 지원합니다. 이를 활용하여 복잡한 패턴 매칭이 가능합니다.

  • `pgrep 'httpd|nginx'`는 `httpd` 또는 `nginx` 프로세스를 찾습니다.
  • `pgrep -f '^/usr/bin/python3.*script.py$'`와 같이 `-f` 옵션과 함께 사용하면 특정 스크립트 실행을 정확히 찾아낼 수 있습니다.

정확한 매칭을 위한 -x 옵션

`pgrep`은 기본적으로 부분 일치를 수행합니다. 예를 들어 `pgrep ssh`는 `ssh`뿐만 아니라 `sshd`도 찾습니다. 정확히 `ssh`라는 이름의 프로세스만 찾으려면 `-x` 옵션을 사용하세요. 이는 의도치 않은 프로세스에 영향을 주는 것을 방지하는 데 중요합니다.


동일 카테고리 명령어