MacOS – 전원 관리 (pmset, caffeinate)
macOS에서 잠자기(Sleep) 모드가 제대로 작동하지 않거나, 특정 시간에 맥을 자동으로 켜고 끄고 싶을 때 사용하는 강력한 명령어가 바로 pmset입니다. 이 포스팅에서는 pmset의 주요 옵션과 사용법, 그리고 잠자기를 방지하는 caffeinate 도구까지 정리해 드립니다.
1. pmset 기본 확인하기
현재 시스템의 전원 관리 설정을 확인하려면 터미널에 다음 명령어를 입력합니다.
pmset -g
주요 항목 설명:
- disksleep: 디스크가 잠자기 상태로 진입하기 전 대기 시간(분)
- displaysleep: 디스플레이가 꺼지기 전 대기 시간(분)
- sleep: 시스템 전체가 잠자기 상태로 진입하기 전 대기 시간(분)
- hibernatemode: 잠자기 시 데이터 저장 방식 (0, 3, 25 등)
- womp: ‘Wake on LAN’ 활성화 여부 (0: 끔, 1: 켬)
- lidwake: 노트북 덮개를 열었을 때 깨어나기 여부
2. 하이버네이트 모드(hibernatemode) 이해하기
가장 혼동하기 쉬운 부분입니다. 맥의 모델과 전원 상태에 따라 기본값이 다릅니다.
- 0 (전통적인 Sleep): 데이터를 RAM에만 유지합니다. 깨어나는 속도가 매우 빠르지만, 배터리가 방전되면 저장하지 않은 데이터가 유실됩니다. (데스크탑 맥의 기본값)
- 3 (Safe Sleep): 데이터를 RAM에 유지하면서 동시에 디스크(sleepimage)에도 기록합니다. 전원이 유지되면 RAM에서 빠르게 깨어나고, 방전되면 디스크에서 복구합니다. (노트북 모델의 기본값)
- 25 (Hibernate): 데이터를 디스크에만 저장하고 RAM 전원을 차단합니다. 배터리를 가장 적게 소모하지만 깨어나는 속도가 상대적으로 느립니다.
3. 스케줄링: 자동 시작 및 종료 설정
특정 요일이나 시간에 맥을 자동으로 켜거나 끄도록 예약할 수 있습니다. 요일은 M, T, W, R(목), F, S, U(일)로 표시합니다.
-
매일 오전 8시에 켜기/깨우기
sudo pmset repeat wakeorpoweron MTWRFSU 08:00:00 -
매일 밤 11시에 종료하기
sudo pmset repeat shutdown MTWRFSU 23:00:00 -
설정된 스케줄 확인
pmset -g sched -
모든 예약 스케줄 취소
sudo pmset repeat cancel
4. 고급 설정: 잠자기와 대기 모드 제어
standby는 일반적인 sleep보다 더 깊은 절전 상태를 의미합니다.
- 잠자기 후 대기 모드로 전환되는 시간 설정 (예: 1시간 후)
# 3600초 = 1시간
sudo pmset -a standbydelayhigh 3600
- 잠자기 기능 완전히 비활성화 (서버용으로 사용할 때 유용)
sudo pmset -a sleep 0
- 클램셸 모드(덮개 닫음)에서 잠자기 방지
외부 모니터를 연결하지 않은 상태에서도 덮개를 닫았을 때 맥이 꺼지지 않게 하려면:
sudo pmset -a disablesleep 1
(주의: 가방 안에서 열이 발생할 수 있으므로 주의가 필요합니다.)
5. 잠자기 버그 해결
일부 구형 맥북의 경우, 잠자기 모드가 정상작동하지 않고, 잠자기에서 깨어나는 것이 아니라 재부팅을 하는 오류가 있습니다.
이 경우, 아래 명령으로 잠자기를 비활성화 하는 방법이 있습니다.
잠자기 모드가 아니기에 배터리는 조금 더 사용하지만, 재부팅으로 인한 디스크 수명 단축을 생각하면 좋은 선택이 됩니다.
# 하이버네이션 비활성화: RAM 에 데이타 유지
sudo pmset -a hibernatemode 0
# 자동 전원 차단 비활성화: 일정 시간이 지날때 전원 OFF 되는 기능 비활성화
sudo pmset -a autopoweroff 0
# 대기 모드 비활성화
sudo pmset -a standby 0
- 전원 공급 없이 장시간 방치해 놓으면, 데이타를 유실할 수 있습니다.
6. caffeinate: 일시적인 잠자기 방지
pmset이 시스템 설정을 영구적으로 바꾼다면, caffeinate는 명령어를 실행하는 동안만 일시적으로 잠자기를 막아줍니다.
-
1시간 동안 잠자기 방지
caffeinate -u -t 3600 -
특정 프로세스가 실행되는 동안 잠자기 방지
컴파일이나 대용량 다운로드 중에 유용합니다.caffeinate -i ./my_script.sh -
디스플레이와 시스템 모두 깨우기
caffeinate -d
💡 팁: 설정 초기화
여러 설정을 건드리다 보니 원래대로 돌아가고 싶다면 다음 명령어를 사용하세요.
sudo pmset restoredefaults