Mac에서 앱 강제 종료하기: 단축키, Dock, 터미널
Mac에서 앱을 강제 종료하려면 Option-Command-Esc를 누르고, 강제 종료 윈도우에서 앱을 선택한 다음 강제 종료를 클릭합니다. 같은 윈도우는 Apple 메뉴 › 강제 종료에서도 열 수 있고, Dock에서 앱 아이콘을 Control-클릭한 뒤 강제 종료를 선택해도 됩니다. 그래도 먼저 Command-Q로 평소처럼 종료해 보세요. Apple의 설명에 따르면 일반 종료는 앱이 변경 사항 저장처럼 필요한 일을 마칠 수 있게 해 주지만, 강제 종료는 그렇지 않습니다.
강제 종료는 응답하지 않는 앱 하나를 위한 방법입니다. Mac 전체가 멈추거나 스스로 재시동된다면 다른 문제이며, Mac이 멈추거나 계속 충돌할 때에서 다룹니다.
강제로 끄기 전에 먼저 일반 종료하기
회전하는 대기 커서가 보이는 앱은 죽었다기보다 바쁜 경우가 많습니다. 큰 파일 내보내기, 동기화, 느린 네트워크 드라이브 때문에 윈도우가 한동안 멈췄다가 다시 돌아오기도 합니다. 강제로 끄기 전에 다음을 해 보세요.
- 앱이 저장, 내보내기, 복사 중이었다면 1분 정도 기다립니다.
- 다른 앱의 윈도우를 클릭합니다. 나머지 Mac이 반응한다면 문제는 그 앱에만 있습니다.
- 다시 그 앱으로 돌아와 Command-Q를 누르거나 메뉴 막대의 앱 메뉴에서 종료를 선택합니다. 열려 있는 문서를 저장할지 물어볼 수 있습니다.
- 충분히 기다려도 아무 반응이 없으면 그때 강제 종료합니다.
일반 종료와 강제 종료는 속도만 다른 같은 동작이 아닙니다. 일반 종료는 앱에게 스스로 닫으라고 요청하므로 앱이 문서, 설정, 캐시를 일관된 상태로 기록할 수 있습니다. 강제 종료는 프로세스를 즉시 끝내기 때문에 앱이 아직 디스크에 쓰지 못한 내용은 모두 사라집니다.
앱을 강제 종료하는 네 가지 방법
| 방법 | 하는 법 | 적합한 경우 |
|---|---|---|
| 키보드 | Option-Command-Esc를 누르고 앱을 선택한 뒤 강제 종료 클릭 | 앱 윈도우가 화면을 덮었거나 메뉴 막대에 닿을 수 없을 때 |
| Apple 메뉴 | Apple 메뉴 › 강제 종료에서 앱을 선택하고 강제 종료 클릭 | 마우스는 되지만 앱이 반응하지 않을 때 |
| Dock | Dock의 앱 아이콘을 Control-클릭하고 강제 종료 선택 | 앱 아이콘이 Dock에 있을 때 |
| 활성 상태 보기 | 프로세스를 선택하고 중지 버튼을 클릭한 뒤 강제 종료 선택 | 앱에 윈도우나 Dock 아이콘이 없거나 보조 프로세스일 때 |
Touch Bar가 있는 Mac에서는 Esc가 Touch Bar 왼쪽에 있습니다(Apple). Dock의 경우 Apple의 Dock 사용 설명서가 응답하지 않는 앱을 Control-클릭으로 종료하는 방법을 안내하면서, 저장하지 않은 변경 사항을 잃을 수 있다고 경고합니다.
응답하지 않는 앱이 Finder라면 강제 종료 윈도우에서 Finder를 선택하고 다시 실행을 클릭합니다. Finder는 macOS의 일부라서 스스로 다시 시작되며, 완전히 꺼 둘 수 있는 앱이 아닙니다.
보조 프로세스와 백그라운드 프로세스는 활성 상태 보기로
강제 종료 윈도우에는 사용자 인터페이스가 있는 앱만 나옵니다. 그런데 많은 문제는 윈도우가 없는 프로세스에서 생깁니다. 브라우저 렌더러, 동기화 보조 프로그램, 메뉴 막대 유틸리티, 업데이트 프로그램 같은 것들입니다. 활성 상태 보기에는 이 모두가 표시됩니다.
- 응용 프로그램 › 유틸리티에서 활성 상태 보기를 엽니다.
- 프로세스를 찾습니다. 응답하지 않는 프로세스는 (응답 없음)으로 표시되고 빨간색으로 나옵니다(활성 상태 보기 사용 설명서).
- 프로세스를 선택한 다음 윈도우 왼쪽 상단의 중지 버튼을 클릭합니다.
- 먼저 종료를 선택합니다. Apple은 이것이 앱에서 파일 › 종료를 선택하는 것과 같다고 설명하며, 종료 때문에 데이터가 손실되거나 다른 앱에 방해가 될 수 있다면 프로세스는 종료되지 않습니다.
- 종료로 아무 일도 일어나지 않을 때만 강제 종료를 선택합니다. 프로세스가 즉시 끝나고, 열린 파일의 데이터가 손실될 수 있으며, 그 프로세스를 쓰는 다른 앱에 문제가 생길 수 있습니다.
일부 프로세스는 다른 사용자나 시스템에 속해 있어서, 활성 상태 보기가 관리자 암호를 요구할 수 있습니다. 이 요청은 암호를 입력하고 계속하라는 신호가 아니라, 멈추고 그 프로세스가 무엇인지 먼저 확인하라는 신호입니다. 이름을 따라 어느 앱의 프로세스인지 찾는 방법은 낯선 Mac 프로세스를 조사하는 방법에서 설명합니다.
터미널의 kill과 killall은 마지막 수단
터미널 명령은 활성 상태 보기와 같은 일을 하지만 안전장치가 더 적습니다. 그래픽 도구가 반응하지 않을 때만, 그리고 정체를 확인한 프로세스에만 사용하세요.
다음 명령은 조회만 하고 아무것도 바꾸지 않습니다.
pgrep -il appname
ps -axo pid,comm | grep -i appname
appname을 앱 이름의 일부로 바꿉니다. 첫 번째 열의 숫자인 PID를 적어 둡니다.
프로세스에 종료를 요청하려면 다음을 실행합니다.
kill PID
killall AppName
killall 매뉴얼 페이지(man killall)에 따르면 이 명령은 기본적으로 사용자가 소유한, 이름이 일치하는 모든 프로세스에 TERM 신호를 보냅니다. TERM은 프로세스에 종료를 요청하는 신호이고, 잘 만들어진 앱은 먼저 뒷정리를 합니다. killall은 이름으로 대상을 찾기 때문에 여러 프로세스가 한꺼번에 걸릴 수 있습니다. Helper 같은 이름은 여러 앱의 보조 프로세스와 일치할 수 있습니다.
TERM이 통하지 않으면 강제 버전은 KILL을 보냅니다. signal 매뉴얼 페이지(man signal)는 KILL을 가로채거나 무시할 수 없다고 적고 있으므로, 프로세스는 뒷정리할 기회를 얻지 못합니다.
kill -9 PID
KILL은 터미널판 강제 종료입니다. 저장하지 않은 문서는 사라지고, 파일을 쓰던 중에 멈춘 앱은 그 파일을 손상된 상태로 남길 수 있습니다. 내가 소유하지 않은 프로세스를 끄려고 sudo를 붙이지 마세요. root 소유 프로세스는 대개 macOS, 보안 제품, 기기 관리의 일부이며, 이를 멈추면 네트워크, 로그인, 백업이 망가질 수 있습니다.
강제 종료로 잃을 수 있는 것
| 항목 | 강제 종료 후 |
|---|---|
| 열린 문서의 저장하지 않은 변경 사항 | 앱이 이미 자동 저장한 부분을 제외하고 사라짐 |
| 쓰는 중이던 파일 | 불완전하거나 손상될 수 있으니 쓰기 전에 확인 |
| 진행 중이던 다운로드, 내보내기, 업로드 | 대개 중단되므로 앱을 다시 연 뒤 다시 시작 |
| 이번 세션에서 바꾼 앱 설정 | 앱이 아직 저장하지 않았다면 사라질 수 있음 |
| 그 프로세스에 의존하는 다른 앱 | 다시 연결되거나 다시 열 때까지 오류가 날 수 있음 |
앱을 다시 연 뒤 작업하던 문서를 확인하세요. 앱에 복구 폴더나 버전 기록이 있다면 작업을 다시 하기 전에 그곳부터 살펴보세요.
앱이 계속 다시 열릴 때
강제 종료는 실행 중인 프로세스 하나를 멈출 뿐, 그 프로세스를 실행하는 무언가까지 막지는 않습니다. 강제 종료한 앱이나 보조 프로세스가 몇 초 만에 돌아온다면 무언가가 다시 실행하고 있는 것입니다.
- 로그인 항목. 시스템 설정 › 일반 › 로그인 항목 및 확장 프로그램을 열어 로그인 시 열기와 백그라운드에서 허용을 확인합니다. Apple은 로그인할 때 항목 자동으로 열기에서 이 목록을 설명합니다.
- LaunchAgent와 LaunchDaemon.
~/Library/LaunchAgents,/Library/LaunchAgents,/Library/LaunchDaemons에 있는 plist가 launchd에게 프로세스를 계속 살려 두고 종료될 때마다 다시 시작하라고 지시할 수 있습니다. - 상위 앱. 일부 보조 프로세스는 본 앱, 동기화 클라이언트, 개발사 업데이트 프로그램에 속해 있으며 그 앱이 다시 실행합니다.
launchd가 계속 살려 두도록 설정된 프로세스를 반복해서 강제 종료하면 재시작 루프만 생깁니다. 해당 로그인 항목이나 백그라운드 항목을 끄거나, 보조 프로세스를 소유한 앱을 종료하세요. 두 목록은 Mac 시동 프로그램 끄는 방법에서, 앱을 지운 뒤에도 남는 보조 프로세스는 삭제한 앱이 계속 실행될 때에서 다룹니다.
Mole의 상태 페이지에서 프로세스 멈추기
Mole을 쓴다면 상태 페이지에 실행 중인 앱과 프로세스가 CPU, 메모리 사용량과 함께 나옵니다. 행의 줄임표를 클릭하거나 행을 Control-클릭하면 종료와 강제 종료가 보입니다.
- 실행 중인 앱에서 종료를 누르면 평소 방식대로 종료를 요청하므로, 앱이 자체 저장 확인 창을 띄울 수 있습니다. 앱이 아닌 프로세스에는 TERM을 보냅니다.
- 강제 종료는 KILL을 보냅니다. Mole은 두 동작 모두 실행 전에 확인을 받고, 강제 종료에서는 저장하지 않은 데이터를 잃을 수 있다고 알려 줍니다.
root나 시스템 계정에 속한 프로세스, /System 등 시스템 경로 아래의 실행 파일, Finder, Dock, WindowServer, 그리고 이름이 VPN, 프록시, 보안, 기기 관리 도구와 일치하는 프로세스에는 두 동작 모두 제공하지 않습니다. 이런 행에는 버튼 대신 안내 문구가 나옵니다. 활성 상태 보기에서 하는 선택과 같은 동작이며, LaunchAgent가 프로세스를 다시 시작하는 것까지 막지는 않습니다.
하지 말아야 할 것
- 커서가 돈다는 이유만으로 아직 저장하거나 내보내는 중인 앱을 강제 종료하지 마세요.
- CPU나 메모리 수치가 높다는 이유로 낯선 프로세스를 강제 종료하지 마세요. 먼저 소유자를 확인하세요.
- 일반적인 이름으로
sudo killall을 실행하지 마세요. - 매일 멈추는 앱을 강제 종료로 해결했다고 여기지 마세요. 앱을 업데이트하고, 플러그인을 확인하고, 재현 가능한 상황을 개발사에 알리세요.
업데이트하고 재시동해도 앱이 계속 멈춘다면 Apple의 앱 문제 해결 단계는 다음과 같습니다. 앱을 종료했다가 다시 열고, Mac을 재시동하고, 앱과 macOS 업데이트를 설치한 다음, 앱을 삭제하고 다시 설치합니다. Apple은 앱을 삭제하면 앱 안에 저장된 데이터가 지워질 수 있다고 덧붙입니다.
자주 묻는 질문
Mac에서 강제 종료 단축키는 무엇인가요?
Option-Command-Esc를 누릅니다. 강제 종료 윈도우가 열리면 앱을 선택하고 강제 종료를 클릭합니다. Windows의 Control-Alt-Delete에 해당하는 Mac 단축키입니다.
키보드가 먹히지 않을 때 Mac에서 앱을 강제 종료하려면 어떻게 하나요?
마우스를 사용합니다. Apple 메뉴 › 강제 종료를 선택하거나, Dock에서 앱 아이콘을 Control-클릭하고 강제 종료를 선택하세요. 아무것도 반응하지 않는다면 Apple이 안내하는 마지막 방법은 Mac이 꺼질 때까지 전원 버튼을 최대 10초간 누르고 있는 것입니다. 이 경우 모든 앱에서 저장하지 않은 작업이 사라집니다.
앱을 강제 종료하면 앱이나 데이터가 삭제되나요?
아닙니다. 실행 중인 프로세스만 끝납니다. 앱과 저장된 파일은 그대로 있고, 아직 저장하지 않은 변경 사항만 사라집니다.
강제 종료한 앱이 왜 다시 나타나나요?
로그인 항목, LaunchAgent, 상위 앱이 다시 실행하고 있기 때문입니다. 로그인 항목 및 확장 프로그램에서 해당 항목을 끄거나 그 프로세스를 소유한 앱을 종료하세요.