2026 대여 Mac Mini 장기 작업
launchd vs PM2: 프로세스 수호·보존·부팅 자동 시작 체크리스트
장기 작업에서 흔한 운영 제약
- 터미널 세션이 끊기면 포그라운드 작업이 함께 종료될 위험.
- 표준출력을 한 파일에만 쌓으면 APFS 여유가 빠르게 줄고 원인 추적이 어려워짐.
- 재시작 정책이 불명확하면 짧게 살았다 죽는 루프나 반대로 영구 정지가 반복됨.
① 선택 의사결정 매트릭스
시스템·멀티런타임은 launchd, Node 묶음·통합 CLI는 PM2. PM2는 부모 Node 메모리를 함께 예산에 넣으세요.
| 항목 | launchd | PM2 |
|---|---|---|
| 적용 시나리오 | 단일 데몬·바이너리·백그라운드 에이전트 | Node·다워커·클러스터·무중단 reload |
| 로그 | 표준출력·에러 파일, 외부 로테이션 필요 | CLI·모듈 로테이션 또는 외부 도구 |
| 크래시 재시작 | KeepAlive로 종료 코드 기반 재기동 | autorestart·메모리 한도 등 세부 설정 |
| 리소스 점유 | 감시층 얇음, 자식 위주 | 상위 Node·메타 오버헤드 |
② launchd plist 핵심 필드 체크리스트
- Label·ProgramArguments·RunAtLoad·KeepAlive(SuccessfulExit 등)·WorkingDirectory·EnvironmentVariables·StandardOutPath/StandardErrorPath·ThrottleInterval·ProcessType.
런북 다섯 단계:
- plist를
LaunchAgents에 두고 권한 확인. launchctl bootstrap gui/UID등록.- 로그 경로 분리·디렉터리 선행 생성.
- 정상 종료와 크래시 exit로 KeepAlive 조정.
launchctl kickstart -k재적용.
③ PM2 설정과 부팅 자동 시작
ecosystem.config로 인스턴스·env 고정 후 pm2 start. 안정화 후 pm2 save·pm2 startup launchd 출력 launchctl을 사용자에 맞게 적용. 대여 맥은 UID·경로를 반드시 검증.
④ 리소스와 로그 로테이션
통합 메모리에서 로그·캐시가 스왑을 밀 수 있습니다. launchd는 newsyslog 등으로 파일 분할, PM2는 pm2-logrotate 또는 외부 로테이션. 디스크 잔여 임계치는 장기 배치 글의 십오 퍼센트 가이드와 맞추세요.
인용 가능한 실행 포인트 세 가지
- PM2 부팅: save 후 startup 출력 launchctl 적용.
- launchd 로그: 표준출력 파일은 로테이션 없으면 무한 증가.
- 디스크: 크롤링·배치 글 임계치와 동일 선에서 관리.
⑤ FAQ
마무리
수호층을 고정하면 장애가 런북화됩니다. 구매·대여로 노드를 확보하고 고객센터·홈·블로그의 장기 호스팅 글을 이어 적용하세요.