banner

[DX] 다수의 프로젝트 병렬로 빌드&배포하기

#dx#linux#shellscript

2023.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를 & 명령어로 백그라운드에 실행시키게 합니다.

끝까지 읽어주셔서 감사합니다.

0분 동안 운영중...

Copyright © 2023, All right reserved.