용어집/문제가 생겼을 때

PID

다른 이름: 프로세스 ID

간단한 답

PID(프로세스 ID)는 macOS가 실행 중인 각 프로세스를 구별하려고 붙이는 번호입니다. 실행 중인 두 프로세스가 같은 PID를 갖는 일은 없지만, 프로세스가 끝나면 그 번호가 다시 쓰일 수 있습니다.

활성 상태 보기는 PID를 별도의 열로 보여 줍니다. 이름이 같은 프로세스가 여러 개일 수 있으므로, kill, sample, lsof 같은 터미널 명령은 PID로 대상 프로세스를 가려냅니다.

macOS에서 PID 0은 kernel_task이고, PID 1은 나머지 시스템을 시작하는 첫 번째 프로세스인 launchd입니다. 사용자가 여는 앱은 더 큰 번호를 받으며, 실행할 때마다 새 PID를 받습니다.

앱의 PID 찾는 방법

활성 상태 보기의 목록에서 앱을 찾아 PID 열을 읽습니다. 열이 가려져 있다면 보기 > 열 > PID를 선택합니다.

터미널에서 pgrep -l Safari 명령을 실행하면 일치하는 프로세스가 PID와 함께 나열됩니다. ps -p <PID> -o pid,ppid,comm 명령은 프로세스의 이름과 상위 프로세스의 PID를 보여 줍니다.

상위 PID로 알 수 있는 것

맨 처음 프로세스를 제외한 모든 프로세스에는 자신을 시작한 상위 프로세스가 있습니다. 활성 상태 보기에서 보기 > 모든 프로세스(계층 표시)를 선택하면 이런 상위·하위 관계가 트리로 표시됩니다.

터미널에서 PID 찾는 방법

터미널에서 보이는 프로세스 이름은 앱 이름과 다를 수 있습니다. 많은 앱이 "App Helper (Renderer)" 같은 이름의 도우미 프로세스를 실행하며, 각각 PID가 따로 있습니다.

  1. 응용 프로그램 > 유틸리티에서 터미널을 엽니다.
  2. pgrep -lx Finder 명령을 실행하면 이름이 정확히 Finder인 프로세스의 PID를 얻습니다. 이름의 일부만 일치시키려면 x를 빼세요.
  3. 앱에 프로세스가 여러 개라면 pgrep -lf "Google Chrome" 명령을 실행해 전체 명령줄과 일치시킵니다.
  4. 현재 셸의 PID를 보려면 echo $$ 명령을 실행합니다.

PID가 어떤 앱의 것인지 찾는 방법

오류 메시지나 로그 파일에는 이름 없이 PID만 나오는 경우가 많습니다. 찾아보려면 ps -p <PID> -o pid,ppid,user,command 명령을 실행하세요. 프로그램의 전체 경로, 실행하는 사용자, 상위 프로세스의 PID가 표시됩니다.

활성 상태 보기에서 PID 열 머리글을 클릭해 정렬한 다음 그 번호까지 스크롤합니다. 프로세스를 이중 클릭하면 정보 윈도우가 열리며, 상위 프로세스도 여기에 나옵니다.

ps 명령이 아무것도 출력하지 않으면 그 프로세스는 이미 끝난 것입니다.

PID로 할 수 있는 일

먼저 ps -p <PID> 명령으로 이름을 확인하세요. PID는 다시 쓰이므로, 전에 복사해 둔 번호가 지금은 다른 프로세스의 것일 수 있습니다.

  • kill <PID> 명령은 프로세스에 종료를 요청합니다. kill -9 <PID> 명령은 즉시 끝냅니다.
  • sample <PID> 5 명령은 프로세스가 하는 일을 5초 동안 기록합니다.
  • lsof -p <PID> 명령은 프로세스가 열어 둔 파일과 네트워크 연결을 나열합니다.
  • lsof -a -p <PID> -d cwd 명령은 프로세스가 실행 중인 폴더를 보여 줍니다.
  • top -pid <PID> 명령은 실시간 CPU와 메모리 사용량을 보여 줍니다. 끝내려면 q를 누릅니다.

이름 대신 PID를 써야 할 때

killall Safari나 pkill Safari처럼 이름으로 작동하는 명령은 일치하는 모든 프로세스에 적용됩니다. 기본적으로 killall 명령은 사용자가 소유한 일치하는 프로세스 모두에 종료 신호를 보내고, pkill 명령은 입력한 텍스트가 이름에 들어간 모든 프로세스와 일치합니다.

앱이 하나라면 괜찮지만, 같은 이름의 프로세스가 많을 때는 위험합니다. 브라우저는 도우미 프로세스를 수십 개 실행할 수 있고, node나 python의 여러 실행본이 서로 다른 프로젝트의 것일 수 있습니다. PID는 정확히 프로세스 하나만 가리키므로, 하나만 멈추고 나머지는 계속 실행하고 싶을 때 쓰세요.

이름을 쓴다면 먼저 일치하는 항목을 미리 확인하세요. pgrep -l <name> 명령은 pkill 명령이 적용될 대상을 나열하고, killall -d <name> 명령은 실제로 신호를 보내지 않고 killall 명령이 무엇을 할지 출력합니다.

자주 묻는 질문

활성 상태 보기의 PID는 무슨 뜻인가요?

PID는 프로세스 ID의 약자입니다. 실행 중인 프로세스마다 붙는 고유한 번호로, 프로세스를 서로 구별하고 터미널 명령의 대상을 지정하는 데 쓰입니다.

앱의 PID는 계속 같은가요?

실행되는 동안에만 같습니다. 앱을 종료했다가 다시 열면 새 PID를 받습니다.

Mac의 PID 1은 무엇인가요?

PID 1은 macOS에서 다른 프로세스를 시작하고 관리하는 launchd입니다. 절대 종료해서는 안 됩니다.

Mac에서 PID로 프로세스를 끝내려면 어떻게 하나요?

터미널에서 kill <PID> 명령을 실행하세요. 끝나지 않으면 kill -9 <PID> 명령으로 즉시 끝낼 수 있지만, 저장하지 않은 데이터를 잃을 수 있습니다.

두 프로세스가 같은 PID를 가질 수 있나요?

동시에는 가질 수 없습니다. 이전 프로세스가 끝나면 그 PID가 새 프로세스에 주어질 수 있습니다.

활성 상태 보기의 PID 0은 무엇인가요?

PID 0은 macOS 커널을 나타내는 kernel_task입니다. 종료할 수 없습니다.

관련 항목

Windows에서 넘어왔나요? Mac용 작업 관리자 또는 활성 상태 보기 대체 앱 추천을 확인하세요. 용어집의 모든 용어를 둘러봐도 좋습니다.