회사 자리에 전원 연결해두고 무거운 작업(예: Claude Code, 빌드, 장시간 스크립트 등)을 돌려놓은 채 뚜껑을 덮어도 잠들지 않게 하는 설정입니다. 대신 퇴근할 때 끄는 걸 깜빡해도 저녁에 자동으로 안전하게 원상복구되는 장치까지 같이 넣었습니다.
caffeinate 같은 명령어는 이 강제 절전을 못 막습니다.sudo pmset -a disablesleep 1 명령어를 쓰면 뚜껑을 덮어도 절전에 들어가지 않게 할 수 있습니다.터미널에서 아래 명령어를 통째로 복사해서 실행합니다. (다운로드 없이 터미널에서 바로 파일이 생성됩니다.)
sudo mkdir -p /usr/local/bin
sudo tee /usr/local/bin/pmset-safety-off.sh > /dev/null << 'EOF'
#!/bin/bash
# 매일 정해진 시간에 pmset disablesleep을 자동으로 꺼서
# 깜빡하고 켜놓은 채 퇴근하는 걸 방지하는 안전장치 스크립트.
/usr/bin/pmset -a disablesleep 0
echo "$(date '+%Y-%m-%d %H:%M:%S') disablesleep -> 0 (정상 절전 복구됨)"
EOF
sudo chmod +x /usr/local/bin/pmset-safety-off.sh
기본값은 매일 저녁 8시(20:00) 에 자동으로 절전 방지를 꺼주는 설정입니다.
sudo tee /Library/LaunchDaemons/com.nhn.pmset-safety-off.plist > /dev/null << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.nhn.pmset-safety-off</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/usr/local/bin/pmset-safety-off.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>20</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<key>RunAtLoad</key>
<false/>
<key>StandardOutPath</key>
<string>/var/log/pmset-safety-off.log</string>
<key>StandardErrorPath</key>
<string>/var/log/pmset-safety-off.log</string>
</dict>
</plist>
EOF
sudo chown root:wheel /Library/LaunchDaemons/com.nhn.pmset-safety-off.plist
sudo chmod 644 /Library/LaunchDaemons/com.nhn.pmset-safety-off.plist
sudo launchctl load -w /Library/LaunchDaemons/com.nhn.pmset-safety-off.plist
sudo launchctl start com.nhn.pmset-safety-off
확인 명령어 (macOS는 이 값을 disablesleep이 아니라 SleepDisabled라는 이름으로 보여줍니다):
pmset -g | grep -i sleepdisabled
SleepDisabled 0이 뜨면 정상입니다.
등록이 잘 됐는지 확인:
sudo launchctl list | grep pmset-safety-off
com.nhn.pmset-safety-off가 목록에 뜨면 정상 등록된 것입니다.
로그로 실행 이력 확인:
cat /var/log/pmset-safety-off.log
전체 흐름 테스트 (선택)
sudo pmset -a disablesleep 1
pmset -g | grep -i sleepdisabled # SleepDisabled 1 확인
sudo launchctl start com.nhn.pmset-safety-off
pmset -g | grep -i sleepdisabled # SleepDisabled 0 으로 바뀌었는지 확인
절전 방지를 켜는 건 자동화하지 않았습니다 (깜빡해도 위험하지 않은 쪽이라 수동이 안전합니다). 대신 짧은 명령어로 켤 수 있게 alias를 등록합니다.
echo "alias sleepoff='sudo pmset -a disablesleep 1'" >> ~/.zshrc
source ~/.zshrc
등록 확인:
sleepoff
비밀번호 입력 후 에러 없이 넘어가면 정상입니다.
| 시점 | 할 일 |
|---|---|
| 출근해서 | 터미널에 sleepoff 입력 → 비밀번호 입력. 그날은 뚜껑 덮어도 절전 안 됨 |
| 작업 중 | 신경 쓸 것 없음 |
| 퇴근할 때 | 아무것도 안 해도 됨. 그냥 뚜껑 덮고 나가면 됨 |
| 저녁 8시 | 자동으로 SleepDisabled 0으로 복구됨 (깜빡하고 켜놓은 채 퇴근해도 안전) |
<integer>20</integer>(시), <integer>0</integer>(분) 숫자를 원하는 시간으로 바꿔서 다시 실행한 뒤 아래로 재적용하세요.sudo launchctl unload /Library/LaunchDaemons/com.nhn.pmset-safety-off.plist
sudo launchctl load -w /Library/LaunchDaemons/com.nhn.pmset-safety-off.plist
caffeinate: 유휴 절전만 막고, 뚜껑 닫힘으로 인한 강제 절전은 못 막음sudo pmset -a disablesleep 1: 뚜껑 닫힘 절전까지 막음 (이 가이드에서 사용하는 방법)/Library/LaunchDaemons에 등록하면 재부팅 후에도 유지됨