활성 상태 모니터에 내장된 Mac용 프로세스 인스펙터.
아무 프로세스나 클릭하면 그 서랍에 속한 앱, 코드 서명과 팀 ID, 인타이틀먼트, 상위 프로세스와 launchd 에이전트, 전체 명령줄, 그리고 시작된 뒤로 사용한 CPU 시간, 메모리, 열린 파일, 수신 대기 포트가 표시됩니다. 앱이라면 버전, 번들 ID, Info.plist가 더해집니다. CSV로 저장하거나, 터미널의 vitals process로 같은 내용을 얻을 수 있습니다.
- 버전
- 156.0.8078.74
- 번들 ID
- com.google.Chrome
- 아키텍처
- 유니버설 · x86_64 · arm64
- 서명
- Google LLC · 팀 ID EQHXZ8M8AV
- 보호
- 강화된 런타임샌드박스 없음
- 사용자
- me
- 실행 시간
- 6h 14m
- 위치
- /Applications/Google Chrome.app
- 버전
- 2.15
- 번들 ID
- com.apple.Terminal
- 아키텍처
- Apple Silicon · arm64e
- 서명
- Apple
- 보호
- 강화된 런타임 없음샌드박스 없음
- 사용자
- me
- 실행 시간
- 2d 6h
- 위치
- /System/Applications/Utilities/Terminal.app
- 버전
- 4.88.1
- 번들 ID
- com.docker.docker
- 아키텍처
- Apple Silicon · arm64
- 서명
- Docker Inc · 팀 ID 9BNSXJN65R
- 보호
- 강화된 런타임샌드박스 없음
- 사용자
- me
- 실행 시간
- 3d 1h
- 위치
- /Applications/Docker.app
- 프로세스 ID
- 48190
- 상위 프로세스
- launchd (1)
- 실행 시간
- 6h 14m
- 번들 ID
- com.google.Chrome
- 버전
- 156.0.8078.74
- 아키텍처
- 유니버설 · x86_64 · arm64
- 서명
- Google LLC · 팀 ID EQHXZ8M8AV
- 강화된 런타임
- 예
- 샌드박스
- 아니요
- 인타이틀먼트
- 1
- CPU 시간
- 42m 10s 사용자 32m 54s · 78%시스템 9m 16s · 22%
- 메모리
- 412 MB · 최대 672 MB의 61%
- 스레드
- 64
- 열린 파일
- 318
- 프로세스 ID
- 48211
- 상위 프로세스
- Google Chrome (48190)
- 실행한 프로세스
- Google Chrome (48190)
- 실행 시간
- 6h 12m
- 버전
- 156.0.8078.74
- 아키텍처
- 유니버설 · x86_64 · arm64
- 인수
- --type=renderer --lang=en-US --num-raster-threads=4 --enable-zero-copy
- 서명
- Google LLC · 팀 ID EQHXZ8M8AV
- 강화된 런타임
- 예
- 샌드박스
- 아니요
- 인타이틀먼트
- 1
- CPU 시간
- 12m 40s 사용자 10m 23s · 82%시스템 2m 17s · 18%
- 메모리
- 1.92 GB · 최대 2.18 GB의 88%
- 스레드
- 23
- 열린 파일
- 96
- 프로세스 ID
- 48193
- 상위 프로세스
- Google Chrome (48190)
- 실행한 프로세스
- Google Chrome (48190)
- 실행 시간
- 6h 14m
- 버전
- 156.0.8078.74
- 아키텍처
- 유니버설 · x86_64 · arm64
- 인수
- --type=gpu-process --lang=en-US --gpu-preferences=UAAAAAAAAADgAAAEAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAA
- 서명
- Google LLC · 팀 ID EQHXZ8M8AV
- 강화된 런타임
- 예
- 샌드박스
- 아니요
- 인타이틀먼트
- 1
- CPU 시간
- 18m 2s 사용자 12m 37s · 70%시스템 5m 25s · 30%
- GPU
- 3%
- 메모리
- 842 MB · 최대 904 MB의 93%
- 스레드
- 31
- 열린 파일
- 142
- 프로세스 ID
- 48377
- 상위 프로세스
- Google Chrome (48190)
- 실행한 프로세스
- Google Chrome (48190)
- 실행 시간
- 3h 40m
- 버전
- 156.0.8078.74
- 아키텍처
- 유니버설 · x86_64 · arm64
- 인수
- --type=renderer --lang=en-US --num-raster-threads=4 --enable-zero-copy
- 서명
- Google LLC · 팀 ID EQHXZ8M8AV
- 강화된 런타임
- 예
- 샌드박스
- 아니요
- 인타이틀먼트
- 1
- CPU 시간
- 4m 51s 사용자 4m 2s · 83%시스템 49s · 17%
- 메모리
- 1.31 GB · 최대 1.36 GB의 96%
- 스레드
- 21
- 열린 파일
- 88
- 프로세스 ID
- 581
- 상위 프로세스
- launchd (1)
- 실행 시간
- 2d 6h
- 번들 ID
- com.apple.Terminal
- 버전
- 2.15
- 아키텍처
- Apple Silicon · arm64e
- 서명
- Apple
- 강화된 런타임
- 아니요
- 샌드박스
- 아니요
- 인타이틀먼트
- 6
- CPU 시간
- 3m 12s 사용자 2m 2s · 64%시스템 1m 10s · 36%
- 메모리
- 148 MB · 최대 208 MB의 71%
- 스레드
- 12
- 열린 파일
- 58
- 프로세스 ID
- 60120
- 상위 프로세스
- login (60118)
- 실행한 프로세스
- 터미널 (581)
- 실행 시간
- 2d 5h
- 아키텍처
- Apple Silicon · arm64e
- 인수
- -zsh
- 서명
- Apple
- 강화된 런타임
- 아니요
- 샌드박스
- 아니요
- CPU 시간
- 1.2s 사용자 0.7s · 58%시스템 0.5s · 42%
- 메모리
- 12 MB · 최대 20 MB의 60%
- 스레드
- 1
- 열린 파일
- 8
- 프로세스 ID
- 60412
- 상위 프로세스
- zsh (60120)
- 실행한 프로세스
- 터미널 (581)
- 실행 시간
- 2d 4h
- 아키텍처
- Apple Silicon · arm64
- 인수
- node_modules/.bin/next dev --port 3000
- 서명
- Node.js Foundation · 팀 ID HX7739G8FX
- 강화된 런타임
- 예
- 샌드박스
- 아니요
- CPU 시간
- 1h 52m 사용자 1h 42m · 91%시스템 10m 5s · 9%
- 메모리
- 486 MB · 최대 797 MB의 61%
- 스레드
- 19
- 열린 파일
- 203
- 수신 대기 포트
- 3000
- 프로세스 ID
- 60533
- 상위 프로세스
- zsh (60120)
- 실행한 프로세스
- 터미널 (581)
- 실행 시간
- 14s
- 아키텍처
- Apple Silicon · arm64
- 인수
- node_modules/.bin/vitest run --coverage
- 서명
- Node.js Foundation · 팀 ID HX7739G8FX
- 강화된 런타임
- 예
- 샌드박스
- 아니요
- CPU 시간
- 9.1s 사용자 8.0s · 88%시스템 1.1s · 12%
- 메모리
- 391 MB · 최대 391 MB의 100%
- 스레드
- 27
- 열린 파일
- 412
- 프로세스 ID
- 20288
- 상위 프로세스
- launchd (1)
- 실행 시간
- 3d 1h
- 번들 ID
- com.docker.docker
- 버전
- 4.88.1
- 아키텍처
- Apple Silicon · arm64
- 서명
- Docker Inc · 팀 ID 9BNSXJN65R
- 강화된 런타임
- 예
- 샌드박스
- 아니요
- 인타이틀먼트
- 7
- CPU 시간
- 6m 4s 사용자 4m 31s · 74%시스템 1m 33s · 26%
- 메모리
- 112 MB · 최대 233 MB의 48%
- 스레드
- 22
- 열린 파일
- 74
- 프로세스 ID
- 20311
- 상위 프로세스
- Docker (20288)
- 실행한 프로세스
- Docker (20288)
- 실행 시간
- 3d 1h
- 버전
- 4.88.1
- 아키텍처
- Apple Silicon · arm64
- 인수
- -watchdog -max-restarts 5
- 서명
- Docker Inc · 팀 ID 9BNSXJN65R
- 강화된 런타임
- 예
- 샌드박스
- 아니요
- 인타이틀먼트
- 7
- CPU 시간
- 3h 8m 사용자 2h 0m · 64%시스템 1h 8m · 36%
- 메모리
- 1.57 GB · 최대 2.04 GB의 77%
- 스레드
- 48
- 열린 파일
- 241
- 프로세스 ID
- 20340
- 상위 프로세스
- com.docker.backend (20311)
- 실행한 프로세스
- Docker (20288)
- 실행 시간
- 12s
- 버전
- 4.88.1
- 아키텍처
- Apple Silicon · arm64
- 서명
- Docker Inc · 팀 ID 9BNSXJN65R
- 강화된 런타임
- 예
- 샌드박스
- 아니요
- 인타이틀먼트
- 1
- CPU 시간
- 2.0s 사용자 1.6s · 80%시스템 0.4s · 20%
- 메모리
- 64 MB · 최대 64 MB의 100%
- 스레드
- 9
- 열린 파일
- 31
- 프로세스 ID
- 20318
- 상위 프로세스
- com.docker.backend (20311)
- 실행한 프로세스
- Docker (20288)
- 실행 시간
- 3d 1h
- 버전
- 4.88.1
- 아키텍처
- Apple Silicon · arm64
- 서명
- Docker Inc · 팀 ID 9BNSXJN65R
- 강화된 런타임
- 예
- 샌드박스
- 아니요
- 인타이틀먼트
- 3
- CPU 시간
- 1h 4m 사용자 31m 12s · 49%시스템 32m 48s · 51%
- 메모리
- 38 MB · 최대 52 MB의 73%
- 스레드
- 14
- 열린 파일
- 46
수치는 시뮬레이션입니다. 웹 페이지는 Mac을 읽을 수 없고, 읽어서도 안 됩니다.
프로세스 뒤에 있는 앱, 그 코드 서명과 인타이틀먼트.
서랍은 프로세스가 속한 앱과 어떤 종류의 프로세스인지(브라우저 탭, 확장 프로그램, GPU 프로세스, 개발 서버)로 시작합니다. 이어서 코드 서명이 나오며, 개발자 이름과 팀 ID, 강화된 런타임과 샌드박스를 쓰는지, 가진 모든 인타이틀먼트, 그리고 Apple Silicon용인지 Intel용인지 둘 다인지와 Rosetta로 실행되고 있는지를 보여 줍니다.
- 속한 앱, 그리고 탭인지 확장 프로그램인지 도우미인지
- 코드 서명과 팀 ID. Apple 자체의 것은 Apple
- 강화된 런타임, 샌드박스, 모든 인타이틀먼트
- Apple Silicon용인지 Intel용인지 둘 다인지, Rosetta로 실행되는지
상위 프로세스, launchd 에이전트, 전체 명령줄.
모든 프로세스에는 상위 프로세스가 있고, Vitals는 그 이름을 실행한 앱과 함께 알려 줍니다. 백그라운드 프로세스라면 로그인 시 그것을 시작하는 launchd 에이전트 또는 데몬도 알려 줍니다. 전체 명령줄이 있으면 이름만 node나 python인 프로세스도 아는 프로젝트의 개발 서버라는 것을 알 수 있습니다. 그 아래에는 그것이 시작한 하위 프로세스가 클릭 한 번이면 열리게 나열됩니다.
- 상위 프로세스와 실행한 앱, 각각 링크로
- 로그인 시 시작하는 launchd 에이전트 또는 데몬
- 전체 명령줄과, 열면 보이는 환경
- 하위 프로세스, 각자의 수치와 함께
시작된 뒤의 CPU 시간, 메모리 최고치, 열린 파일, 수신 대기 포트.
백분율은 지금 이 순간에 관한 것입니다. 서랍은 프로세스의 일생을 다룹니다. 시작된 뒤의 CPU 시간을 프로세스 자체의 작업과 커널이 그것을 위해 한 작업으로 나누어 보여 주고, 지금의 메모리를 지금까지 쥐었던 최대치와 비교하며, 스레드, 열린 파일, 페이지 입력, 읽고 쓴 바이트, 수신 대기 중인 포트를 보여 줍니다. 서랍이 열려 있는 동안에는 CPU와 메모리의 실시간 차트도 있습니다.
- CPU 시간, 사용자와 시스템으로 나누어
- 지금의 메모리, 지금까지의 최고치 대비 비율로
- 스레드, 열린 파일, 페이지 입력, 디스크 읽기와 쓰기
- 수신 대기 포트, 그리고 서랍이 열려 있는 동안의 실시간 차트
앱의 버전, 번들 ID, Info.plist, 그리고 그 아래의 모든 프로세스.
앱을 열면 세부사항 카드에 버전, 번들 ID, 위치, 코드 서명, 무엇이 시작하는지가 표시되고, 전체 Info.plist도 클릭 한 번이면 열립니다. 그 아래에 프로세스가 나열되며, 각각 클릭 한 번이면 세부사항이 열립니다. 방금 시작한 것에는 신규 표시가 붙고, 지난 10분 동안 종료된 것도 목록에 남으므로 충돌이나 잠깐 왔다 간 도우미도 놓치지 않습니다.
- 버전, 번들 ID, 전체 Info.plist
- 모든 프로세스, 방금 시작한 프로세스에는 신규 표시
- 최근 종료됨: 지난 10분 동안 종료된 것
- 표의 열을 고르고,
/a regex/로 거르기
프로세스를 CSV로 내보내거나, 터미널에서 vitals process를 실행하세요.
모든 서랍에는 내보내기 메뉴가 있습니다. 텍스트로 복사는 메시지나 버그 신고에, CSV로 저장은 스프레드시트에 쓸 수 있으며, Info.plist와 인타이틀먼트도 포함됩니다. 터미널에서는 vitals process가 이름이나 PID로 지정한 어떤 프로세스에 대해서도 같은 내용을 돌려주고, AI 어시스턴트는 MCP의 process_details 도구로 얻습니다.
- 텍스트로 복사, 또는 CSV로 저장
vitals process node, 또는 PID로. 스크립트에는--json--env는 환경을,--plist는 Info.plist를 더합니다- MCP로 Claude, Codex, Cursor가 쓰는
process_details도구
프로세스 인스펙터, 전과 후
활성 상태 보기의 검사 윈도우는 프로세스의 상위 프로세스, 사용자, CPU 시간, 메모리, 열린 파일과 포트, 그리고 샘플을 보여 줍니다. 누가 서명했는지, 이름만 node인 프로세스가 어느 앱의 것인지, 로그인 시 무엇이 시작하는지, 전체 명령줄이 무엇이었는지는 알려 주지 않습니다. 그것들은 터미널을 열어야 합니다. 서명에는 codesign, 인수에는 ps, 무엇이 시작하는지에는 launchctl, 포트에는 lsof, Info.plist에는 plutil입니다.
질문은 대개 그보다 단순합니다. 이게 뭐지? Helper라는 이름의 프로세스, 아무도 시작한 기억이 없는 python, com.apple.something 같은 이름으로 코어 절반을 쓰는 무언가. 내가 설치한 앱의 일부인지, Apple의 것인지, 실행되고 있어도 되는 것인지.
Vitals는 서랍 하나로 답합니다. 프로세스가 속한 앱과 프로세스의 종류, 코드 서명과 인타이틀먼트, 상위 프로세스와 명령줄, 그것이 시작한 프로세스, 그리고 시작된 뒤로 사용한 CPU 시간, 메모리, 파일, 포트. 그 아래에는 버전, Info.plist, 인타이틀먼트가 접혀 있습니다. 같은 답을 CSV로도, 터미널의 vitals process로도, AI 어시스턴트용 도구로도 얻을 수 있습니다.
Vitals에서 찾기
탭, 메뉴 막대 항목, 설정을 손이 가는 순서대로 정리했습니다.
- 01
아무 프로세스나 클릭해 서랍 열기
어느 탭에서든 앱을 클릭한 다음 그 프로세스 중 하나를 클릭하거나, 앱의 서랍에서 프로세스에 포인터를 올리고 ⓘ를 클릭하세요. 그 프로세스의 서랍이 열립니다. ⌘F는 이름으로 프로세스를 찾고,
/a pattern/은 정규 표현식으로 검색합니다. - 02
서랍을 섹션별로 읽기
식별 정보, 그다음 앱 또는 실행 파일, 보안, 리소스 사용량, 디스크, 네트워크, 하위 프로세스. Info.plist, 인타이틀먼트, 환경은 열기 전까지 접혀 있습니다. 상위 프로세스, 실행한 프로세스, 각 하위 프로세스는 링크이므로 클릭하면 그리로 이동합니다.
- 03
프로세스 표의 열 고르기
도구 막대의 열 버튼으로 탭의 열을 더하거나 뺄 수 있습니다. PID, 사용자, 경로, 버전, 시작 시간, 대기 상태 깨움, 그리고 측정값. 탭마다 각자의 선택을 기억합니다.
- 04
복사하거나, CSV로 저장하거나, 터미널에서 묻기
서랍 머리글의 공유 버튼에서 텍스트로 복사와 CSV로 저장을 고를 수 있습니다. 터미널에서는
vitals process <name>이나vitals process <pid>에--json,--env,--plist를 붙여서. MCP에서는process_details도구입니다.
codesignvitals process --json알아 둘 용어
수치의 의미를 활성 상태 보기 용어집에서 가져왔습니다.
- PID
PID(프로세스 ID)는 macOS가 실행 중인 각 프로세스를 구별하려고 붙이는 번호입니다.
- launchd
launchd는 macOS가 시동할 때 가장 먼저 시작하는 프로세스로, 프로세스 ID가 1입니다.
- 도우미 프로세스
도우미 프로세스는 앱이 웹 페이지 렌더링, 확장 프로그램 실행, 그래픽 처리 같은 일의 일부를 맡기려고 시작하는 별도의 프로세스입니다.
- 스레드
스레드는 프로세스 안에서 따로 실행되는 작업 흐름이며, 프로세스는 여러 스레드를 서로 다른 CPU 코어에서 동시에 실행할 수 있습니다.
- 수신 대기 포트
수신 대기 포트는 포트 3000의 웹 서버처럼 프로세스가 들어오는 연결을 기다리는 네트워크 포트입니다.
- WindowServer
WindowServer는 윈도우를 관리하고, 앱이 그린 내용을 합성해 디스플레이에 표시되는 최종 화면을 만들고, 클릭이나 키 입력 같은 입력 이벤트를 알맞은 앱에 전달하는 macOS 시스템 프로세스입니다.
- 프로세스 샘플
프로세스 샘플은 선택한 프로세스가 몇 초 동안 무엇을 하는지 기록해, 스레드가 어디에서 시간을 보내는지 텍스트 보고서로 만들어 주는 활성 상태 보기 도구입니다.
- 강제 종료
강제 종료는 앱이나 프로세스가 저장하거나 정리할 틈을 주지 않고 즉시 끝냅니다.
문의
프로세스 인스펙터에 대해 구입 전에 자주 묻는 질문.
프로세스 인스펙터는 어떻게 여나요?
어느 목록에서든 프로세스를 클릭하면 그 서랍이 열립니다. 앱의 서랍에서는 프로세스가 각각 한 행입니다. 행을 클릭하거나, 포인터를 올리면 옆에 나타나는 ⓘ를 클릭하세요. ⌘F를 누르면 이름으로 프로세스를 찾을 수 있고, /a pattern/을 입력하면 정규 표현식으로 검색할 수 있습니다.
프로세스의 코드 서명은 무엇을 알려 주나요?
그 코드를 누가 만들었는지입니다. 팀 ID가 붙은 이름은 Google LLC나 Docker Inc처럼 Apple이 신원을 확인한 개발자입니다. Apple 자체의 프로세스에는 Apple이라고 표시됩니다. ‘서명됨, 인증서 없음’은 Mac에서 빌드되고 특정한 누군가의 서명은 없는 도구로, Homebrew나 직접 컴파일한 것에서는 흔한 일입니다. ‘서명되지 않음’은 서명이 전혀 없다는 뜻입니다. 그 아래에는 강화된 런타임을 쓰는지, 샌드박스에서 실행되는지, 그리고 부여받은 모든 인타이틀먼트가 표시됩니다.
Vitals로 프로세스가 안전한지, 악성 코드인지 알 수 있나요?
판단할 수 있는 사실을 보여 줍니다. 코드 서명, 상위 프로세스, 있는 위치, 그리고 무엇을 하고 있는지. 팀 ID가 있는 알려진 제작자, 샌드박스, 아는 상위 프로세스라면 안심해도 됩니다. 서명이 없고, 숨겨진 폴더 안의 경로이고, 설치한 적 없는 launchd 에이전트라면 더 자세히 살펴볼 만합니다. Vitals는 악성 코드를 검사하지 않습니다. 무엇이 있는지 알려 줄 뿐입니다.
CPU 시간이란 무엇이고, 왜 사용자와 시스템으로 나뉘어 있나요?
CPU 시간은 프로세스가 시작된 뒤로 코어를 바쁘게 만든 시간을 모두 더한 것입니다. 코어 하나의 50%를 두 시간 동안 쓴 프로세스라면 한 시간을 쓴 셈입니다. 사용자 시간은 프로세스 자체의 작업이고, 시스템 시간은 파일 읽기나 네트워크 통신처럼 커널이 그 프로세스를 위해 한 작업입니다. 하는 일이 별로 없는 프로세스에서 시스템 비중이 높다면, 대개 macOS에 무언가를 계속 요청하느라 바쁘다는 뜻입니다.
왜 어떤 프로세스는 다른 프로세스보다 세부사항이 적게 표시되나요?
macOS는 프로세스의 명령줄, 환경, 시작된 뒤의 합계를 그 프로세스를 실행하는 사용자에게만 보여 줍니다. macOS나 다른 계정에 속한 프로세스는 그것들을 감춰 둡니다. 식별 정보와 서명은 그래도 표시되고, 수치는 Vitals의 선택 사항인 도우미를 통해 표시됩니다. 설정 → 일반에서 전체 시스템 지표를 켜면 얻을 수 있습니다.
WindowServer나 kernel_task 같은 macOS 프로세스도 표시되나요?
네. 앱은 macOS, 서명은 Apple, 상위 프로세스는 launchd입니다. 도우미를 켜면 CPU와 메모리도 표시되고, 서랍이 열려 있는 동안 차트도 움직입니다.
프로세스의 환경 변수를 볼 수 있나요?
네. 서랍 끝에 있는 환경 섹션(열기 전까지는 접혀 있습니다)과 터미널의 vitals process --env에서 볼 수 있습니다. 환경에는 키가 들어 있는 경우가 많으므로 AI 어시스턴트에게는 절대 전달되지 않습니다.
프로세스가 종료된 뒤 Vitals는 얼마나 오래 남겨 두나요?
10분 동안 앱의 서랍에 이름, 시작한 때와 끝난 때, 쥐고 있던 메모리와 함께 남아 있습니다. 그래서 충돌한 도우미나 자리를 비운 사이에 끝난 빌드도 그대로 볼 수 있습니다.
프로세스의 세부사항을 터미널이나 AI 어시스턴트에서도 얻을 수 있나요?
네. vitals process node나 vitals process 60412로 같은 세부사항을 텍스트로, 또는 스크립트용으로 --json과 함께 얻을 수 있습니다. --env는 환경을, --plist는 앱의 Info.plist를 더합니다. Claude, Codex, Cursor 같은 어시스턴트는 Vitals MCP 서버의 process_details 도구로 얻으며, 요청하면 Info.plist도 포함됩니다.
프로세스 샘플이나 spindump를 얻을 수 있나요?
아니요. 그것은 활성 상태 보기의 것이고, Vitals는 따라 하지 않습니다. Vitals가 답하는 것은 프로세스가 무엇인지이며, 코드 서명, 상위 프로세스, 리소스 사용량과 함께 보여 줍니다. 멈춘 앱의 스택 추적이 필요하다면 활성 상태 보기를 열고 샘플을 누르세요.
더 읽어 보기
이 기능을 쓰는 가이드, 그리고 같은 용도로 많이 사는 앱과 Vitals의 비교.