[DX] 다수의 프로젝트 병렬로 빌드&배포하기
#dx#linux#shellscript2023.07.14
PC랑 M 프로젝트 실서버 배포 진행하겠습니다~
git pull PC
... PC build ...
... PC baepo ...
git pull M ...
.........
저희 팀의 배포 방식은 순차대로 짜여진 쉘스크립트를 실행하는 방식입니다.
그냥 쉘스크립트 하나만 실행하기만 하면 두 개의 프로젝트가 빌드&배포가 되기에 편리했었죠.
하지만 PC가 빌드&배포 된 후, M이 빌드&배포가 되기에 하나의 프로젝트를 빌드&배포하는 것의 2배가 되는 시간이 걸리게 됩니다.
🔑두 프로젝트가 동시에 빌드&배포될 수는 없을까?
순차적으로 빌드&배포가 되어야 할 프로트트들이 아니라면 동시에 빌드&배포가 되면 시간을 좀 더 줄일 수 있지 않을까 싶었습니다.
빌드하는 작업을 백그라운드로 실행시키면 되지 않나?라는 생각으로 시작했습니다.
쉘스크립트 명령어 중 &&
명령어를 자주 사용하게 되는데, &&
명령어는 앞의 명령어의 실행이 끝난 뒤 다음 명령어를 실행하도록 합니다.
이와 유사한 &
명령어가 있습니다. &
명령어는 앞의 명령어를 백그라운드로 실행시키고 다음 명령어를 실행하도록 합니다.
&
명령어를 활용하면 되겠다!
🎊&명령어로 병렬 실행하는 쉘 스크립트 만들기
#!/bin/bash
# 작업 1을 백그라운드에서 실행
task1() {
# 작업 1 실행 명령어
sleep 5 # 예시로 5초간 대기
echo "작업 1 완료"
}
# 작업 2를 백그라운드에서 실행
task2() {
# 작업 2 실행 명령어
sleep 3 # 예시로 3초간 대기
echo "작업 2 완료"
}
# 작업 1 실행
task1 &
# 작업 2 실행
task2 &
# 모든 백그라운드 작업이 완료될 때까지 대기
wait
echo "모든 작업 완료"
각각의 task를 만들고 그 task를 &
명령어로 백그라운드에 실행시키게 합니다.
끝까지 읽어주셔서 감사합니다.