본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

프로세스 이름이나 사용자, 터미널 등의 조건에 맞는 프로세스를 찾아 PID를 출력한다.

  • 프로세스 이름은 정규 표현식으로 부분 일치 검색된다.
  • pkill과 같은 검색 조건을 사용한다.
  • procps-ng 패키지에 포함되어 있다.
  • 경로 : /usr/bin/pgrep
$ pgrep [옵션] [패턴]
  • -l, --list-name : PID와 함께 프로세스 이름을 출력한다.
  • -a, --list-full : PID와 함께 전체 명령행을 출력한다.
  • -c, --count : 일치하는 프로세스의 PID 대신 개수를 출력한다.
  • -d, --delimiter 구분자 : PID 사이의 구분자를 지정한다. (기본값은 줄바꿈)
  • -f, --full : 프로세스 이름뿐 아니라 전체 명령행을 패턴과 비교한다.
  • -x, --exact : 프로세스 이름이 패턴과 정확히 일치하는 경우만 출력한다.
  • -v, --inverse : 조건에 맞지 않는 프로세스를 출력한다.
  • -u, --euid 사용자 : 지정한 유효 사용자(EUID)의 프로세스만 출력한다.
  • -U, --uid 사용자 : 지정한 실제 사용자(UID)의 프로세스만 출력한다.
  • -G, --group 그룹 : 지정한 실제 그룹(GID)의 프로세스만 출력한다.
  • -t, --terminal 터미널 : 지정한 제어 터미널에 연결된 프로세스만 출력한다.
  • -P, --parent PPID : 지정한 부모 프로세스의 자식 프로세스만 출력한다.
  • -n, --newest / -o, --oldest : 가장 최근에/가장 먼저 시작된 프로세스 하나만 출력한다.
  • -w, --lightweight : 스레드 ID(LWP)까지 출력한다.
# sshd 프로세스의 PID와 이름을 출력한다.
$ pgrep -l sshd

# root 사용자가 실행한 sshd 프로세스만 출력한다.
$ pgrep -u root sshd

# user1 사용자의 프로세스를 전체 명령행과 함께 출력한다.
$ pgrep -a -u user1

# httpd 프로세스의 개수를 출력한다.
$ pgrep -c httpd

# 이름이 정확히 bash인 프로세스의 PID를 쉼표로 구분하여 출력한다.
$ pgrep -x -d, bash
  • 특정 사용자의 프로세스를 찾는 -u, 이름을 함께 출력하는 -l 옵션이 자주 출제된다.
  • pgrep은 PID를 출력만 하고, 같은 조건으로 시그널을 보내는 명령은 pkill이다.