콘텐츠로 건너뛰기
Home » Don’t sleep Mac!

Don’t sleep Mac!

아침에 아이폰 단축어로 맥북을 깨워 spoitfy로 클래식 음악과 함께 아침을 시작하고 있다.
지하철이나 버스에서 아이폰이나 아이패드로 맥북 SSH에 접속해서 Claude Code를 활용해서 바이브 코딩도 하고 있다.

그런데, 맥북이 잠을 자면 맥북 SSH에 접근을 전혀 할 수가 없다.
‘시스템 설정 > 배터리 > 옵션 > 네트워크 연결 시 깨우기 > 항상’으로 했음에도 자주 SSH접근 오류가 뜨는 것이 아닌가!
칠판을 손톱으로 긁은 소리를 들은 것 마냥 신경질이 나기 시작했다.

무선IP, 유선이더넷, Tailscale Ipv4를 접근 SSH로 했는데 각각의 단점이 있었다.
* 유무선 IP로 접근하여 제어하는 것은 맥과 아이폰이 동일한 WiFi 사용시엔 가능하나, 아이폰을 들고 외부로 나가면 안되므로 공유기 별도 설정하는 등 복잡함. (즉, 동일한 WiFi 환경에서만 작동가능)
* 또한, 가정 공유기는 포트포워딩 + 유동IP 문제까지 있어 안정성이 낮음.
* Tailscale은 VPN터널이므로, Sleep모드에선 터널 자체가 끊어져서 잠든 맥을 깨울 수 없다.

가만히 생각해보니, “맥북이 Sleep모드만 안되면 되는 것 아닌가?”라는 단순한 생각에서 해결법을 찾았다.

해결법1 – Mac이 Sleep에 안 들어가게 설정

# 터미널에서 실행 (전원 연결 시 절대 sleep 안 함)
sudo pmset -c sleep 0
sudo pmset -c disksleep. 0
의미
sleep 0❌ 절대 sleep 안 함
sleep 11분 후 sleep
sleep 1010분 후 sleep

Tip. 알아두기!

  1. -c = 충전중, -b = 배터리 중
  2. sleep 이후 숫자의 정체 (아래 표)

해결법2 – 특정 시간대만 깨워두기 (pmset schedule)

# 매일 오전 8시 ~ 자정은 sleep 방지
sudo pmset repeat wake MTWRFSU 08:00:00
sudo pmset repeat sleep MTWRFSU 00:00:00

정리

1. 맥북을 항상 전원 꽂고 책상에 고정해서 사용할 경우

항상 전원 꽂힌 데스크탑처럼 쓰는 거라 Mac mini나 iMac이랑 동일한 환경인 셈이다.
Apple도 그 용도로 pmset -c (전원 연결 시 옵션)를 따로 만들어둔 것이다.

배터리 과열 걱정은 안해도 된다!
배터리로 sleep 0 하면 무리가 맞는데, 전원 연결 상태에서는 배터리도 안 쓰고 발열도 idle 수준이라 수년째 켜둬도 괜찮다.

아래 코드를 Terminal에서 실행하고, 이후 Tailscale IP로 SSH 연결하면 외부 어디에서나 내 맥북에 접근이 가능하다.

sudo pmset -c sleep 0
sudo pmset -c displaysleep 10  # 화면은 10분 후 꺼짐

2. 맥북을 평소엔 들고 다니다가 가끔 집에서 충전

이 경우엔 위 상황과 얘기가 달라진다.
들고 다닐 때 sleep 0이면 가방 안에서 계속 풀가동하여, 발열 + 배터리 소모 문제가 발생한다.

즉, 전원 연결시에만 sleep을 안하고, 배터리시엔 sleep 시키는 것으로 아래와 같이 Terminal에 명령을 내리면 된다.

sudo pmset -c sleep 0   # 전원 연결 시만 적용
sudo pmset -b sleep 10  # 배터리 시엔 10분 후 sleep (기본값 유지)

이렇게 설정하면, 외부에서 들고 다닐 땐 정상적으로 sleep, 집에서 전원 꽂으면 sleep 안 함 → SSH 가능한 구조가 된다.

결과

겉으로 봤을 땐, 화면이 꺼지고 조용하니까 Sleep과 완전 동일하다.

Sleeppmset -c sleep 0
화면꺼짐꺼짐
소음없음없음
SSH❌ 불가✅ 가능
Tailscale❌ 끊김✅ 유지
전력 소모거의 0idle 수준 (미미)

클림쉘 모드일 때도 안정적인가?

오히려 독(클램쉘) 모드가 더 안정적이다.

뚜껑 닫혀도 전원 + 외부 모니터 연결 상태면 Mac이 자동으로 sleep 안 한다.
pmset 설정이랑 시너지가 좋다.

뚜껑 열림독 모드 (뚜껑 닫힘)
SSH
Tailscale
발열약간 더 있음오히려 쿨함
화면내장 꺼짐 가능외부 모니터로

단, 독 모드에서 외부 모니터 없이 뚜껑만 닫으면 sleep 들어가니까 주의하자.

다시 되돌리는 명령어 (조립은 분해의 역순)

sudo pmset -c sleep 10      # 전원 연결 시 10분 후 sleep (기본값)
sudo pmset -c displaysleep 2  # 화면 2분 후 꺼짐 (기본값)

혹은

# 모든 pmset 설정 한번에 초기화
sudo pmset -c restoredefaults

마무리

이제 어디서든 맥북SSH에 접속해서 바이브코딩을 할 수 있다!
(이런… Claude Code에서 데스크톱 제어하는 기능 최근에 출시했다고 한다… 참)

0 글이 마음에 드시면 하트를 눌러주세요! 행복한 고민이 됩니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다