728x90
반응형
맥북에서 crontab을 통해 주기적으로 실행을 시켜보고싶은게 생겨서
crontab을 등록하여 테스트를 해보았더니 잘 작동이 되지않아서 찾아보니
macOS에서는 crontab 보다는 LaunchAgents를 통해 crontab의 역할을 한다고 한다.
하고싶었던 작업은 매일 오전10시에 어떤 작업을 수행할 것
* crontab 이라면 아마 이렇게 crontab -e 로 등록해서 사용했을 것 같다.
0 7 * * * cd 실행할위치 && 실행하고싶은 명령어
사용방법
앞서 말했든 macOS에서는 crontab 보다는 LaunchAgents를 권장하고 있고 해당 방법은 간단하다
1. .plist 파일 작성:
~/Library/LaunchAgents/${너가수행할이름}.plist라는 파일을 생성
2. plist 샘플
<?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>본인의프로젝트명</string>
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>-c</string>
<string>cd 실행할위치 && 실행할명령어</string>
</array>
<key>StartInterval</key> //실행간격
<integer>120</integer> //120초 (2분)
</dict>
</plist>
3. 내가 만든 plist가 잘 작성되었는지 확인
plutil -lint ${너가수행할이름}.plist
정상적으로 잘 만들어졌으면 => ${너가수행할이름}.plist: OK
4. plist load
launchctl load ~/Library/LaunchAgents/${너가수행할이름}.plist
5. 등록이 잘되었는지 확인
launchctl list | grep ${너가수행할이름}
6. 만약 등록을 취소하고싶다면
launchctl unload ~/Library/LaunchAgents/${너가수행할이름}.plist
테스트를 위해 2분마다 실행되도록 plist를 만들었다.
여기서 내가 했던 실수들
1. <string>cd 실행할위치 && 실행할명령어</string> 여기서 && 를 xml 문법에 맞게 &로 바꿔줬어야 했다.
2. 처음에는 yarn start라고 실행할 명령어를 썻는데 fail이 떨어졌다 그래서 Full Path 로 변경 : /opt/homebrew/bin/yarn start
실수들에 대해서 수정을 하니 테스트가 잘 돌아간다.
그래서 처음 계획했던 매일 오전 10시에 돌아갈 수 있도록
실행 부분을 변경해주었다.
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>10</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
728x90
반응형
'IT Diary > # Dev Diary' 카테고리의 다른 글
[ Dev Dairy ] 007-1. 포켓몬 이미지 크롤링 ( selenium ) (0) | 2021.07.30 |
---|---|
[ Dev Dairy ] 006. 연관어 네트웍크 분석 Networkx 사용해보기 (0) | 2021.07.28 |
[ Dev Dairy ] 005. krwordrank 사용해보기 (0) | 2021.07.28 |
[ Dev Dairy ] 004. Flask API 만들어보기 (0) | 2021.07.20 |
[ Dev Dairy ] 003. Teachable Machine 사용해보기 (0) | 2021.03.26 |