퍼스널 컴퓨팅

맥의 시작 및 로그인 항목에 대한 이해와 관리·삭제하는 방법

Jason Cross | Macworld 2020.12.16
맥을 켜면 다양한 앱과 애드온, 백그라운드 프로세스가 자동으로 실행된다. 대부분은 사용자에게 필요하지만, 때로는 내가 직접 추가한 것이 맞는지 확인할 필요가 있다. 특히 이런 항목은 맥의 시작 소요 시간을 늘리고 성능을 저하할 수 있으므로, 꼭 필요한 것만 로딩되도록 해야 한다. 다양한 시작, 로그인 항목을 관리하는 방법을 알아보자.
 

로그인 항목

'시스템 환경설정'을 열고 '사용자 및 그룹'을 클릭한 후 '로그인 항목'을 누르면, 로그인할 때마다 실행되는 앱 리스트를 볼 수 있다. 파일이나 폴더가 포함된 경우도 있다. 이 리스트는 사용자 계정마다 다르다. 보통 여기서 항목을 관리할 수 있다. 앱이 여기에 추가되기 때문이다. 앱 대부분은 처음 실행할 때 '로그인 시 열기' 권한 승인을 요청하거나, 설정에 '로그인 시 열기' 혹은 이와 비슷한 체크박스를 둔다. 어떤 경우든, 이 '로그인 항목' 메뉴에서 '+' 버튼을 이용해 항목을 추가하거나, 해당 선택한 후  '-' 버튼으로 삭제할 수 있다.
 
사용자가 추가했든 앱이 자동으로 추가했든 상관없이 로그인 항목 리스트의 모든 것이 로그인할 때 자동으로 실행된다. © IDG
 

StartupItems 폴더

맥OS 초기 버전에는 맥을 시작할 때 로드할 항목을 처리하기 위해 2개 폴더를 사용했다. /Library/StartupItems와 /System/Library/StartupItems다. 현재는 이런 폴더 사용을 권장하지 않는데, 일부 오래된 앱은 여전히 이 방식을 사용한다. 일반적으로 /System/Library/StartupItems 폴더는 비어 있어야 한다. 그러나 더는 사용하지 않는 항목이 이 폴더에 포함돼 있다면 이를 휴지통으로 옮겨 맥을 시작할 때 자동으로 실행하지 않도록 해야 한다.
 

데몬과 에이전트 실행

OS 10.4 타이거 이후 애플은 개발자가 항목을 자동 실행할 수 있는 새로운 메커니즘을 추가했다. launchd 프로세스가 제어하는 데몬과 에이전트다. 개발자에게 더 많은 유연성을 부여하는 방식인데, 반면 사용자에게는 투명성이 떨어지는 방법이기도 하다.

launchd는 앱을 직접 실행하는 대신 별도 포맷인 .plist 문서를 로드한다. 이 문서에는 어떤 상황에서 어떤 앱을 실행해야 하는지 규정돼 있다. 이런 항목은 백그라운드에서 상시로 실행되거나, 특정 주기로 실행되고, 때로는 특정 파일이나 폴더를 변경하는 이벤트가 발생했을 때만 실행 후 종료되기도 한다. launchd가 사용하는 이 .plist 파일은 5개 폴더를 점유할 수 있는데 구체적인 폴더는 항목이 언제, 어떤 권한으로 실행되느냐에 따라 정해진다.
 
  • /Library/LaunchDaemons, /System/Library/LaunchDaemons 폴더에 있는 항목은 맥을 시작할 때 루트 사용자 권한으로 실행된다.
  • /Library/LaunchAgents, /System/Library/LaunchAgents 폴더에 있는 항목은 모든 사용자가 로그인할 때 사용자 권한으로 실행된다.
  • /Users/(사용자명)/Library/LaunchAgents 폴더에 있는 항목은 특정 사용자가 로그인했을 때만 사용자 권한으로 실행된다.

주의할 점은 시스템 파일을 변경해서는 안 된다는 것이다. 예를 들어 이들 5개 폴더 중 2개는 /System 폴더 아래에 있다. 정확히는 /System/Library/LaunchDaemons와 /System/Library/LaunchAgents다. 이 2개 폴더는 맥OS의 일부가 포함된 컴포넌트용이다. 삭제하거나 변경하고 싶은 생각이 들 수도 있는데, 맥이 정상적으로 실행되는 데 핵심적인 폴더이므로 건드리지 않는 것이 좋다.

다른 폴더는 원하는 대로 바꿔도 무방하다. 이들 폴더로 이동해 어떤 파일이 있는지 확인하고 비활성화하거나 실행되는 주기를 바꾸면 된다. 단, 수정에 앞서 이들 항목이 어떻게 작동하는지 정확히 이해할 필요가 있다.

맥을 시작하거나 로그인할 때 이들 폴더에 저장된 시작 항목이 로드된다. 시스템에 등록된 항목으로 비활성화 플래그 설정이 되지 않는 한 실행된다. 이후에는 시스템을 재시작하기 전까지 명령을 수행한다. 설사 시작 항목을 휴지통으로 옮겨도 재부팅 전까지는 계속 실행된다. 현재 맥에서 실행 중인 모든 시작 항목을 확인하려면 애플리케이션 > 유틸리티에 있는 터미널을 열어 launchctl list라고 입력하고 엔터를 누르면 된다.

시스템을 재시작하지 않고 현재 실행 중인 시작 항목을 중단하려면, 터미널을 열어 launchctl unload라고 입력하고 해당 시작 항목의 전체 경로를 입력하면 된다. 예를 들면 다음과 같다.

launchctl unload ~/Library/LaunchAgents/com.apple.FolderActions.enabled.plist

이를 실행하면 애플스크립트 폴더 액션을 활성화하는 시작 에이전트가 언로드된다. 이를 다시 원래 상태로 되돌리려면 터미널 창에서 unload를 load 명령을 바꿔 실행하면 된다. 참고로 이 과정에서 전체 경로를 입력하는 것이 힘들다면 더 쉬운 방법도 있다. 해당 항목을 그냥 터미널 창으로 드래그하면 된다.

시작 항목 대부분은 특정 주기로 혹은 필요할 때만 실행되고 자동으로 비활성화되므로, 한 폴더에 항목이 있다는 것이 곧 현재 실행 중임을 의미하는 것은 아니다. 현재 실행되고 있는 항목을 보려면 애플리케이션> 유틸리티 > 활성 상태 보기 앱을 실행하면 된다. 단, 여기서 보이는 프로세스 이름은 .plist 파일에서 맥OS에 실행하라고 명령하는 이름과 다를 수 있다는 것을 염두에 둬야 한다.
 

그밖에 이름이 낯선 프로세스의 정체

지금까지 맥OS에서 앱을 자동으로 실행하는 가장 일반적인 방법을 살펴봤다. 그러나 이것만이 아니다. 정체를 알 수 없는 프로세스가 보인다면 아마도 다음 중 하나일 가능성이 있다.
 
  • 커널 익스텐션: 커널 익스텐션 혹은 케엑스(kexts)라고 불리는 것으로 /System/Library/Extensions에 저장돼 있다가 맥을 켰을 때 불러온다. 이들은 오디오 처리, 주변기기 지원 등 로우레벨 기능을 제공하는 것으로, 대부분 맥OS의 일부로 작동한다. 서드파티 케엑스만을 제거하는 가장 안전한 방법은 개발업체가 제공하는 언인스톨러를 이용하는 것이다.
  • 크론: 크론(Cron)은 맥OS에 내장된 유닉스 스케줄링 유틸리티다. 이제는 launchd만큼 널리 사용되지는 않지만, 맥에서 어떤 것이 여전히 남아 있는지 정확히 확인하기는 쉽지 않다. 오래된 소프트웨어를 실행하는 데 필요할 수도 있다.
  • 로그 스크립트: 로그 스크립트(Login scripts)는 시작 항목처럼 맥OS의 구버전에서 사용됐다. 이제는 쓰이지 않는다.

editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.