NEW개발기 · 09.27블로그를 갈아엎었다
← 개발기
·1분

매일 아침 8시에 혼자 도는 리서치 루프

Leopold를 운영용 맥으로 옮기다 macOS 권한에 막혔고, 결국 저장 위치를 바꿨다.

▸ Leopold#leopold#launchd#macos

Leopold를 개발 맥이 아니라 늘 켜져 있는 맥 스튜디오에서 돌리기로 했다. 매일 아침 8시에 최신 코드를 받고, 데이터를 모으고, 스냅샷을 커밋해 푸시하는 루프다.

막힌 곳

launchd로 예약한 작업이 외장 SSD에 있는 저장소를 읽지 못했다. 터미널에서는 잘 되는데 예약 실행에서만 실패했다. 원인은 macOS의 개인정보 보호 권한이었다. 백그라운드 작업은 외장 볼륨에 접근하려면 따로 권한이 필요하다.

해결

셸에 전체 디스크 접근 권한을 주는 방법도 있었지만 범위가 너무 넓었다. 대신 저장소를 내장 디스크로 옮기고 원래 자리에는 링크만 남겼다. 개발은 맥북에서 하고 푸시하면, 운영 맥이 다음 날 아침에 알아서 반영한다.

“터미널에선 되는데 예약하면 안 된다”는 증상은 대부분 권한이나 환경 변수 문제라는 걸 또 배웠다.