macOS caffeinate 명령어로 맥북 잠자기 방지하기

들어가며

Claude Code로 장시간 작업을 돌려놓고 자리를 비운 적이 있다. 돌아와보니 맥북이 잠자기에 들어가서 작업이 멈춰있었다. 터미널에서 뭔가 돌리고 있는데 맥북이 자기 맘대로 꺼져버리는 문제, macOS 기본 명령어 하나로 해결할 수 있다.

1. caffeinate가 뭔가

caffeinatemacOS에 기본 내장된 명령어다. 별도 설치 필요 없다. 이름 그대로 맥북에 카페인을 먹여서 잠들지 못하게 하는 거다.

시스템 환경설정에서 “잠자기 안 함”으로 바꿀 수도 있지만, 그러면 매번 다시 되돌려야 한다. caffeinate필요한 순간에만 잠자기를 방지하고, 작업이 끝나면 자동으로 원래대로 돌아간다.

2. 기본 사용법 — 새로 실행할 때

터미널 작업을 시작할 때부터 잠자기를 방지하려면 caffeinate 뒤에 실행할 명령어를 붙이면 된다.

caffeinate -dims claude

이렇게 하면 Claude Code가 실행되는 동안 맥북이 절대 잠들지 않는다. Claude Code를 종료하면 caffeinate도 자동으로 같이 종료된다.

-dims가 뭔지 궁금할 텐데, 각각 다른 종류의 잠자기를 방지하는 플래그다.

플래그 의미 설명
-d display 디스플레이 슬립 방지 (화면 꺼짐 방지)
-i idle 시스템 유휴 슬립 방지 (아무 입력 없어도 안 잠)
-m disk 디스크 슬립 방지
-s system 시스템 슬립 방지 (전원 연결 시)

화면은 꺼져도 상관없고 작업만 안 멈추면 된다면 -i만 써도 충분하다.

caffeinate -i claude

3. 이미 실행 중인 프로세스에 적용하기

이미 Claude Code를 실행해놓은 상태에서 “아, caffeinate 안 걸었네” 싶을 때가 있다. 이때는 다른 터미널 탭을 열고 -w 플래그를 쓰면 된다.

# 다른 터미널 탭에서 실행
caffeinate -dims -w $(pgrep -ox "claude")

-w특정 프로세스 ID(PID)가 살아있는 동안 잠자기를 방지한다. pgrep -ox "claude"는 현재 실행 중인 claude 프로세스의 PID를 찾아준다.

만약 pgrep이 여러 프로세스를 찾아서 에러가 나면 -o 플래그만 쓰면 된다. (가장 오래된 부모 프로세스 하나만 선택)

caffeinate -dims -w $(pgrep -o "claude")

4. 시간 지정해서 쓰기

특정 시간 동안만 잠자기를 방지하고 싶을 때는 -t 플래그에 초 단위로 시간을 지정한다.

# 2시간(7200초) 동안 잠자기 방지
caffeinate -dims -t 7200

5. 실전 활용 예시

Claude Code 말고도 터미널에서 오래 걸리는 작업이라면 전부 활용할 수 있다.

# 대용량 빌드
caffeinate -i ./gradlew assembleRelease

# 큰 파일 다운로드
caffeinate -i wget https://example.com/big-file.zip

# npm 설치 + 빌드
caffeinate -i bash -c "npm install && npm run build"

# 서버 실행
caffeinate -dims node server.js

핵심은 간단하다. “오래 걸리는 명령어 앞에 caffeinate -i를 붙인다.” 이것만 기억하면 된다.

6. 주의할 점

  • caffeinate를 걸어도 맥북 덮개를 닫으면 잠자기에 들어간다 (clamshell mode). 덮개를 닫은 채로 쓰려면 외부 모니터 + 전원 + 키보드/마우스가 연결되어 있어야 한다.
  • 배터리 모드에서 -s 플래그는 효과가 없다. 배터리로 쓸 때는 -i 플래그를 쓰자.
  • caffeinate를 끝내려면 해당 터미널에서 Ctrl+C를 누르면 된다.

7. alias 등록 — 매번 치기 귀찮을 때

매번 caffeinate -dims claude를 치는 건 귀찮다. alias를 등록하면 claude만 쳐도 자동으로 caffeinate가 적용된다.

~/.zshrc (bash 쓰는 사람은 ~/.bashrc)에 다음 한 줄을 추가한다.

# ~/.zshrc에 추가
alias claude='caffeinate -dims claude'

저장 후 터미널을 새로 열거나 source ~/.zshrc를 실행하면 적용된다.

source ~/.zshrc

이제부터 그냥 claude만 치면 caffeinate가 걸린 상태로 Claude Code가 실행된다. 따로 신경 쓸 게 없어진다.

만약 caffeinate 없이 순수하게 claude만 실행하고 싶을 때는 command 키워드를 쓰면 된다.

# alias 무시하고 원본 claude 실행
command claude

느낀점

사소한 건데 모르면 은근 짜증나는 문제다. 특히 Claude Code처럼 AI와 대화하면서 장시간 작업을 돌리는 경우, 중간에 맥북이 잠들어서 세션이 끊기면 꽤 당황스럽다. caffeinate 하나 알아두면 이런 상황을 완전히 방지할 수 있다. alias까지 등록해두면 아예 잊고 살아도 된다.

댓글 남기기