들어가며
Claude Code로 장시간 작업을 돌려놓고 자리를 비운 적이 있다. 돌아와보니 맥북이 잠자기에 들어가서 작업이 멈춰있었다. 터미널에서 뭔가 돌리고 있는데 맥북이 자기 맘대로 꺼져버리는 문제, macOS 기본 명령어 하나로 해결할 수 있다.
1. caffeinate가 뭔가
caffeinate는 macOS에 기본 내장된 명령어다. 별도 설치 필요 없다. 이름 그대로 맥북에 카페인을 먹여서 잠들지 못하게 하는 거다.
시스템 환경설정에서 “잠자기 안 함”으로 바꿀 수도 있지만, 그러면 매번 다시 되돌려야 한다. 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까지 등록해두면 아예 잊고 살아도 된다.