보안을 위한 APM 을 사용하므로, 부팅시 꼭 직접 오프라인으로 비밀번호를 넣어줘야 부팅이되어
전원문제나 윈도우즈 업그레이드 문제 등으로 리부팅이 되면,
OS 영역으로 넘어가지를 못해서 모든 나의 "사무실에 출근한척 하기"
프로젝트와 연관된 자동화 프로그램들이 먹통이 되버리는 문제가 있었다...
특히 최근 코로나-19 로 인해 회사를 장기간 못가는 상황에서,
종종 맥북으로 cronjob 을 임시로 돌리는데
자꾸 안돌아가버리는 바람에 찾아보니.. cronjob 은 legacy/deprectated 된거나 마찬가지라
launchd 와 launchctl 을 이용하라고 하는것이였다...
그래서 간략하게 plist 를 작성하고 등록하는 것에 대해서 기록해 본다.
launchctl 을 사용하려면 plist 형태로 스크립트를 등록해 줘야 한다.
launchd 에서 모니터링 하는.. 즉, 스크립트가 존재해야 하는 디렉토리는 아래와 같다.
/Library/LaunchDaemons - Daemon 형태로 system-wide 하게 동작해야 하는 것들. /Library/LaunchAgents - Agent 형태로 system-wide 하게 동작해야 하는 것들. (UserHome)/Library/LaunchAgents - 해당 User 가 로그인 했을 때만 수행하도록 할 것들.
나는 항상 내 계정으로 로그인 해 있기에,
~/Library/LaunchAgents 에 다음과 같이 등록하였다.
중요 키워드는 <RootDirectory> 와 <WorkingDirectory>, <StartCalendarInterval> 이다.