맥미니 집 서버가 정전 뒤 다시 살아나는지 확인하는 법 — 자동 켜기, FileVault, 컨테이너 재시작
전기가 돌아왔을 때 맥미니 서버가 혼자 다시 올라오는지는 pmset, fdesetup, docker inspect, launchd 설정 네 가지로 미리 확인할 수 있습니다. FileVault가 켜져 있으면 잠금 화면에서 멈추는 이유와 고를 수 있는 선택지를 정리했습니다.
집에 둔 맥미니를 서버로 쓰면 언젠가 정전을 만납니다. 집 회선은 가끔 멈춘다는 댓글을 받고, 제 서버(Mac mini 2018, macOS 15.7)가 정전 뒤에 혼자 다시 올라오는지 설정을 하나씩 확인했습니다. 실제 정전을 겪어 본 건 아니고, 전기가 돌아왔을 때 거치는 단계를 설정으로 따라가 본 것입니다.
결과부터 적으면, 정전 뒤 자동으로 켜지는 설정과 컨테이너 재시작 설정은 다 되어 있었는데 FileVault가 켜져 있었습니다. 이러면 맥은 켜지지만 디스크 잠금 화면에서 비밀번호를 기다리며 멈춰 있고, 비밀번호를 칠 때까지 도커도 터널도 올라오지 않습니다.

전기가 돌아왔을 때 거치는 단계
| 단계 | 확인할 설정 | 제 서버 |
|---|---|---|
| 1. 전원이 혼자 켜지는가 | pmset 의 autorestart | 켜짐 (1) |
| 2. 디스크 잠금을 넘기는가 | FileVault | 켜짐 → 여기서 멈춤 |
| 3. 도커가 올라오는가 | OrbStack 로그인 시 시작 | 켜짐 (로그인 뒤에 뜸) |
| 4. 컨테이너가 다시 뜨는가 | 재시작 정책 | 18개 모두 unless-stopped |
| 5. 외부 연결이 살아나는가 | cloudflared LaunchDaemon | 부팅 때 자동 실행 |
한 단계라도 막히면 그 뒤는 전부 안 올라옵니다. 아래 순서대로 확인하면 됩니다.
1. 정전 후 자동으로 켜지는지 — pmset
pmset -g | grep autorestart
autorestart 1
1이면 전기가 끊겼다가 돌아올 때 맥이 혼자 켜집니다. 0이면 전원 버튼을 누르기 전까지 꺼진 채로 있습니다. 시스템 설정의 에너지 항목에 있는 “정전 후 자동으로 시동” 옵션이 이 값입니다. 터미널에서 켜려면 관리자 권한이 필요합니다.
sudo pmset -a autorestart 1
같은 출력에서 sleep 0도 같이 봅니다. 서버가 잠자기로 들어가면 정전과 상관없이 응답이 없어집니다.
2. FileVault가 켜져 있으면 잠금 화면에서 멈춘다
fdesetup status
FileVault is On.
FileVault는 디스크 전체를 암호화합니다. 켜져 있으면 맥이 켜질 때 디스크를 풀 비밀번호부터 받아야 하고, 그 전에는 macOS가 다 올라오지 않습니다. 자동 로그인을 설정해 둬도 FileVault가 켜져 있으면 이 단계는 건너뛰지 못합니다. 제 서버도 자동 로그인 사용자가 설정되어 있었지만 FileVault 때문에 쓰이지 않는 상태였습니다.
macOS 15(Sequoia) 이하에서는 이 잠금 화면에서 네트워크 서비스가 돌지 않아서, 밖에서 ssh로 들어가 풀 수도 없습니다. 누군가 서버 앞에서 비밀번호를 쳐야 합니다.
macOS 26(Tahoe)부터는 Apple 실리콘 맥에 한해 원격 로그인이 켜져 있으면 이 단계에서 ssh로 접속해 잠금을 풀 수 있게 됐습니다. 다만 사람이 접속해서 비밀번호를 넣어야 하는 건 같고, 인텔 맥인 Mac mini 2018은 해당되지 않습니다.
계획된 재시작이라면 sudo fdesetup authrestart로 다음 부팅 한 번만 잠금을 건너뛸 수 있습니다. 정전처럼 갑자기 꺼지는 경우에는 쓸 수 없습니다.
3. 도커가 로그인 뒤에 뜨는지 — OrbStack
맥에서 도커를 OrbStack으로 돌리고 있습니다. OrbStack은 사용자가 로그인해야 실행되는 앱이라, 잠금을 풀고 로그인한 다음에 뜹니다. OrbStack 설정에서 로그인할 때 자동으로 시작하는 옵션이 켜져 있는지 확인합니다. 이게 꺼져 있으면 로그인까지 하고도 컨테이너가 하나도 안 올라옵니다. 제 서버는 켜져 있습니다.
FileVault를 켜 둔 맥에서는 잠금 화면에 입력한 비밀번호로 그 사용자 로그인까지 같이 됩니다. 비밀번호를 한 번 치면 OrbStack까지 이어집니다.
4. 컨테이너 재시작 정책 — docker inspect
docker ps -q | xargs docker inspect -f '{{.Name}} {{.HostConfig.RestartPolicy.Name}}'
정책만 세어 보려면 이렇게 합니다.
docker ps -q | xargs docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' | sort | uniq -c
18 unless-stopped
| 정책 | 도커가 다시 뜰 때 |
|---|---|
no (기본값) | 안 켜짐 |
always | 항상 켜짐. 손으로 멈춘 것도 켜짐 |
unless-stopped | 켜짐. 손으로 멈춘 것은 그대로 |
on-failure | 에러로 죽었을 때만 |
compose 파일에 restart:를 안 적으면 기본값 no라서 정전 뒤에 그 컨테이너만 빠집니다. 일부러 꺼 둔 컨테이너까지 켜지지 않게 unless-stopped를 쓰고 있습니다.
services:
web:
image: ghcr.io/내-조직/내-앱:latest
restart: unless-stopped
5. 외부 연결 — cloudflared가 부팅 때 뜨는지
집 서버를 밖에서 쓰는 건 Cloudflare Tunnel로 하고 있습니다. cloudflared를 서비스로 설치하면 /Library/LaunchDaemons/com.cloudflare.cloudflared.plist가 생기고, 여기에 부팅 때 실행(RunAtLoad)과 죽으면 다시 실행(KeepAlive)이 들어 있습니다.
ls /Library/LaunchDaemons | grep cloudflare
grep -A1 -E 'RunAtLoad|KeepAlive' /Library/LaunchDaemons/com.cloudflare.cloudflared.plist
LaunchDaemon은 사용자 로그인 없이 시스템이 올라오면 실행됩니다. 다만 FileVault 잠금을 풀기 전에는 시스템 자체가 다 올라오지 않으므로, 2번에서 멈춰 있으면 터널도 끊긴 상태입니다.
고를 수 있는 선택지
| 선택 | 정전 뒤 | 대신 생기는 것 |
|---|---|---|
| FileVault 켜 둠 | 비밀번호 칠 때까지 꺼져 있음 | 맥을 통째로 가져가도 디스크를 못 읽음 |
| FileVault 끔 | 자동 로그인으로 혼자 다 올라옴 | 디스크가 암호화되지 않음 |
| UPS 연결 | 짧은 정전은 꺼지지 않음 | 장비 비용. 긴 정전은 결국 꺼짐 |
| Apple 실리콘 + macOS 26 | ssh로 들어가 원격으로 잠금 해제 | 사람이 접속해야 함. 인텔 맥은 불가 |
저는 보안 때문에 FileVault를 그대로 켜 두고, 정전이 나면 한 번 더 확인하고 직접 풀기로 했습니다.
FileVault를 끌 때는 시스템 설정의 개인정보 보호 및 보안에서 끄고, 암호 해제가 끝날 때까지 시간이 걸립니다. 끄고 나면 자동 로그인 사용자 설정이 실제로 쓰이게 됩니다.
확인 순서 한 번에
pmset -g | grep -E 'autorestart| sleep'
fdesetup status
docker ps -q | xargs docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' | sort | uniq -c
ls /Library/LaunchDaemons | grep -i cloudflare
모두 읽기만 하는 명령이라 운영 중인 서버에서 그대로 돌려도 됩니다.
참고
서버를 밖에 여는 방법은 Cloudflare Tunnel로 포트포워딩 없이 집 서버를 도메인에 연결하는 방법에, 서버 하드웨어와 비용은 중고 Mac mini 2018을 25만 원에 사서 회사 서버로 쓰는 구성과 비용에 적었습니다.