개요
`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` 옵션을 사용하세요. 이는 의도치 않은 프로세스에 영향을 주는 것을 방지하는 데 중요합니다.