←→ Underneath: Background Apps · 모든 Mac 가이드
Mac의 백그라운드에서 실행 중인 항목을 확인하는 방법
Mac에서는 직접 열지 않은 프로세스가 수백 개 실행되고 있습니다. 대부분은 macOS의 것입니다. 일부는 설치한 앱에서 오며, 그중 몇몇은 로그인할 때마다 다시 시작됩니다. 이를 찾는 방법을 소개합니다.
요약: 지금 실행 중인 항목은 활성 상태 보기에서, 스스로 시작되는 항목은 시스템 설정 › 일반 › 로그인 항목 및 확장 프로그램에서 확인합니다. 전체 그림을 보려면 LaunchAgents와 LaunchDaemons 폴더를 살펴보거나 터미널에서 launchctl list를 실행하십시오.
1. 활성 상태 보기: 지금 실행 중인 항목
응용 프로그램 › 유틸리티에서 열거나, ⌘ Space를 누르고 ‘활성 상태 보기’를 입력합니다.
- 메모리 탭을 클릭하고 메모리 열로 정렬합니다. 가장 많이 사용하는 항목이 맨 위에 옵니다.
- 보기 › 나의 프로세스를 선택하면 시스템 및 다른 사용자의 프로세스가 숨겨집니다.
- 보기 › 모든 프로세스(계층적으로)를 선택하면 어떤 프로세스가 어떤 프로세스를 시작했는지 볼 수 있습니다.
- 프로세스를 이중 클릭하고 열린 파일 및 포트를 열면 경로를 볼 수 있습니다.
알 수 없는 것: 프로세스가 왜 실행되는지, 재시동 후 다시 실행되는지, 어떤 파일이 시작하는지는 알려 주지 않습니다. com.adobe.acc.installer.v2나 Google Chrome Helper (Renderer) 같은 이름은 거의 아무것도 알려 주지 않습니다.
2. 로그인 항목 및 확장 프로그램: 스스로 시작되는 항목
시스템 설정 › 일반 › 로그인 항목 및 확장 프로그램을 엽니다. 두 개의 목록이 있습니다.
- 로그인 시 열기: 로그인할 때 열리는 앱. 하나를 선택하고 –를 클릭하면 제거됩니다.
- 백그라운드에서 허용: 업데이터, 동기화 에이전트, VPN 모니터 같은 백그라운드 도우미가 있는 앱과 개발자. 스위치로 끌 수 있습니다. ‘백그라운드에서 허용’이란 무엇입니까?를 참고하십시오.
알 수 없는 것: 항목이 지금 실행 중인지, 메모리를 얼마나 사용하는지, 어떤 파일에서 오는지는 알려 주지 않습니다. 개발자 이름만 표시되는 항목도 있습니다.
3. LaunchAgents 및 LaunchDaemons 폴더
스스로 시작되는 백그라운드 작업 대부분은 launchd 작업입니다. 각각은 무엇을 언제 실행할지 macOS에 알려 주는 작은 .plist 파일입니다. Finder에서 이동 › 폴더로 이동…(⇧⌘G)을 선택하고 다음을 엽니다.
| 폴더 | 실행 계정 | 시작 시점 |
|---|---|---|
~/Library/LaunchAgents | 사용자 본인 | 본인이 로그인할 때 |
/Library/LaunchAgents | 각 사용자 | 아무 사용자나 로그인할 때 |
/Library/LaunchDaemons | root | Mac이 시작될 때, 로그인 전 |
/System/Library/Launch… | macOS | 보호됨. 건드리지 마십시오 |
파일 이름은 보통 작업의 레이블이며, 예를 들면 com.google.keystone.agent.plist입니다. 텍스트 편집기에서 열면 ProgramArguments(무엇을 실행하는지), RunAtLoad(로그인 시 시작), KeepAlive(멈추면 다시 시작)를 볼 수 있습니다.
알 수 없는 것: macOS 13부터 앱은 자체 앱 번들 안에서 백그라운드 작업을 등록할 수도 있으며, 이 경우 이 폴더들에 파일이 없습니다. 이런 작업은 백그라운드에서 허용에만 표시됩니다.
4. 터미널: 전체 목록
다음 명령어는 읽기 전용입니다. 아무것도 변경하지 않습니다.
사용자 계정에 로드된 모든 launchd 작업과 프로세스 ID(대시는 실행 중이 아님을 뜻함), 마지막 종료 코드:
launchctl list | grep -v com.apple
작업 하나의 세부사항(plist 경로와 상태 포함):
launchctl print gui/$(id -u)/com.example.label
네트워크 포트에서 수신 대기 중인 프로세스(개발 서버, 동기화 도구):
lsof -nP -iTCP -sTCP:LISTEN
사용자 본인의 프로세스를 메모리 사용량이 큰 순서로(RSS 단위는 KB):
ps -U $(id -u) -o pid,rss,etime,comm -m | head -30
macOS가 알고 있는 모든 로그인 항목과 백그라운드 항목(관리자 암호가 필요하며 출력이 깁니다):
sudo sfltool dumpbtm
무엇이 정상일까요?
- 앱 하나에 도우미 여러 개. Chrome, Slack, VS Code를 비롯한 Chromium 또는 Electron 앱은 탭이나 윈도우마다 프로세스를 하나씩 실행합니다. 앱을 종료하면 함께 종료됩니다.
- 업데이터. Google, Microsoft, Adobe, Zoom은 업데이트를 확인하는 에이전트를 설치합니다. 대개 작고 중지해도 안전하지만, 그러면 앱이 스스로 업데이트되지 않습니다.
- 클라우드 동기화와 VPN. Dropbox, OneDrive, VPN 클라이언트는 작동하려면 도우미가 필요합니다. 중지하면 동기화나 보호도 멈춥니다.
- 개발자 도구. Homebrew 서비스, Docker, 데이터베이스, 로컬 개발 서버는 터미널을 닫아도 계속 실행됩니다.
알아볼 수 없는 이름이 있다면, 중지하기 전에 그 레이블이나 경로에 있는 개발자 이름을 검색해 보십시오.
자주 묻는 질문
Mac에서 프로세스가 많이 실행되는 것은 나쁜 일입니까?
아닙니다. 일반적인 Mac에서는 수백 개의 프로세스가 실행되며, 대부분은 macOS의 것입니다. 메모리나 CPU를 많이 사용하거나 알아볼 수 없는 몇 개만 찾아보십시오.
활성 상태 보기에 Google Chrome Helper 프로세스가 왜 그렇게 많이 표시됩니까?
Chrome과 다른 Chromium 또는 Electron 앱은 탭, 확장 프로그램, 렌더러마다 도우미 프로세스를 하나씩 실행합니다. 이들은 앱의 일부이며 앱을 종료하면 함께 종료됩니다.
Mac에서 LaunchAgent는 어디에 저장됩니까?
사용자 본인용은 ~/Library/LaunchAgents, 모든 사용자용은 /Library/LaunchAgents, root로 실행되는 시스템 전체 작업은 /Library/LaunchDaemons에 있습니다. /System/Library 폴더는 macOS의 것이며 보호되어 있습니다.
시스템 설정의 로그인 항목 목록에 모든 것이 표시됩니까?
아닙니다. 로그인 시 열리는 앱과 백그라운드 항목이 있는 앱을 앱이나 개발자별로 묶어 보여 줍니다. 지금 무엇이 실행 중인지, 메모리를 얼마나 사용하는지, 어떤 파일이 시작하는지는 보여 주지 않습니다.