맥을 사용하다 앱의 작동이 예기치 않게 멈췄을 때, 강제 종료하는 방법입니다. 아래 방법을 참고하시어, 작동하지 않는 앱을 강제 종료하시기 바랍니다.
실행 중인 앱 강제 종료하는 방법
보통, 일반적인 GUI 환경에서는 cmd + option + escape(esc) 버튼을 통해 Force Quit Applications 을 불러 올 수 있습니다. 하지만 이 명령어로써는 현재 실행중인 모든 프로세스를 확인할 수는 없습니다. 간단하게 강제 종료 단축키를 찾고 계시다면 이 방법만 아셔도 충분합니다.
- cmd + option + esc ▼
현재 동작 중인 프로세스 종료하기
현재 실행 중인 프로세스를 확인하고, 이 중 원하는 프로세스를 종료하는 방법입니다.
1) ‘Activity Monitor(활성 상태 보기)’로 접근합니다.
- cmd + space(스팟라이트) > ‘Activity Monitor’ ▼
2) 종료하고자 하는 프로세스를 선택하시고, 좌측 상단의 ‘X 버튼’를 누르시면 해당 프로세스를 종료할 수 있습니다.
* Activity Monitor에 관한 자세한 정보는 링크를 참조 부탁드립니다.
터미널에서 강제 종료하는 방법
터미널에서 현재 활성화된 프로세스들을 확인하고, 이를 종료하는 방법입니다. 터미널을 활용할 줄 아시는 분들은 GUI보다 손쉽게 프로세스를 확인하고 종료하실 수 있습니다.
1) ‘ps(Process Status)’ 커맨드를 입력합니다. ▼
$ ps -acx
- PID : 식별 번호들입니다. (이후, kill 커맨드를 이용하여 프로세스를 죽일 수 있는 번호입니다.)
- TTY : 프로세스가 돌고 있는 터미널 식별 번호입니다. 이곳에 ?? 표시가 있다면 이는 이 프로세스가 어떤 특정한 터미널에 속해 있지 않다는 뜻입니다.
- TIME : 프로세스가 실행된 시간
- CMD : 현재 실행 중인 특정 커맨드(executable name) ps-ax를 통해 전체 경로 역시 확인할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | ~/Sites/etc (546): ps –acx PID TTY TIME CMD 1 ?? 4:09.68 launchd 40 ?? 0:05.81 syslogd 41 ?? 0:26.60 UserEventAgent 43 ?? 0:04.30 uninstalld ….. 2995 ttys001 0:09.58 php 516 ttys002 0:00.05 iTerm2 544 ttys002 0:00.02 login 554 ttys002 0:00.11 –bash 546 ttys003 0:00.04 iTerm2 556 ttys003 0:00.02 login 557 ttys003 0:00.12 –bash 790 ttys003 0:00.02 sh 875 ttys003 9:02.55 mysqld 2274 ttys003 0:00.18 php 2832 ttys004 0:00.03 iTerm2 2833 ttys004 0:00.02 login 2834 ttys004 0:00.18 –bash 2889 ttys004 0:00.01 man 2890 ttys004 0:00.00 sh 2891 ttys004 0:00.00 sh 2894 ttys004 0:00.00 sh 2895 ttys004 0:00.00 less 2972 ttys004 0:00.00 mv 4197 ttys004 0:00.00 ps | cs |
2) 종료하기를 원하는 프로세스 번호(PID)를 kill 커맨드와 함께 사용합니다.
$ kill 2895 //2895번 프로세스 죽이기
참고) -acx 플래그와 함께 쓰인 ps 커맨드
위 예시에서 사용한 터미널 커맨드 ‘ps’는 어떤 경로에서든 호출이 가능합니다. 하지만 만약, 플래그 없이 ps만 호출시엔 현재 열려있는 앱의 정보를 볼 수 없기 때문에 우리가 원하는 ‘프로세스 죽이기’ 작업을 할 수 없을 수 있습니다.
- -acx 플래그 정보 | man ps ▼
1 2 3 4 5 6 7 8 9 10 11 12 | –a Display information about other users processes as well as your own. This will skip any processes which do not have a controlling terminal, unless the –x option is also specified. –c Change the “command” column output to just contain the exe– cutable name, rather than the full command line. –x When displaying processes matched by other options, include processes which do not have a controlling terminal. This is the opposite of the –X option. If both –X and –x are speci– fied in the same command, then ps will use the one which was specified last. | cs |
- -a : 다른 유저들의 프로세스들도 open 합니다. -x 옵션이 없을 경우, 터미널에서 컨트롤되지 않는 프로세스는 스킵합니다. 즉, GUI에서 실행 중인 프로세스는 검색되지 않습니다.
- -c : 긴 경로 대신 짧은 ‘실행된 앱의 이름’을 호출합니다. 가독성을 높혀줍니다.
- -x : 터미널에서 컨트롤 되지 않는 프로세스도 호출합니다. GUI에서 실행 중인 프로세스도 함께 확인합니다.
또한, grep 커맨드와 같이 사용하시면, 찾고자 하는 프로세스 이름을 빠르게 찾으실 수 있습니다. ▼
~ (455) $ps -acx | grep 'Google' 750 ?? 13:16.60 Google Chrome 765 ?? 7:01.92 Google Chrome Helper
이상입니다. 질문사항이나 오류가 있다면 댓글로 부탁 드립니다.