Hugo 여러 서버 한번에 시작 및 및 종료하는 방법 설명

여러 Hugo 사이트를 하나의 명령으로 시작하는 방법에 대해서 설명한다.

Hugo 서버 다중 시작 정보

Hugo로 여러 사이트의 실행해야 하는 경우에 하나의 명령 프롬프트에서 동시에 서버를 시작하는 방법에 대해서 설명한다.

여기서는 다음과 같이 홈 디렉터리 아래에 여러 개의 Hugo 프로젝트가 있다고 가정한다.

~/website/site1
~/website/site2
~/website/site3

각 Hugo 프로젝트에 대해 Hugo 서버를 시작하려면 다음과 같이, 포트 번호를 다르게 지정하여 여러 Hugo 서버를 시작할 수 있다.

$ hugo server -p 50001 -s ~/website/site1
$ hugo server -p 50002 -s ~/website/site2
$ hugo server -p 50003 -s ~/website/site3

그러나, 위에서 설명한 것처럼 하나의 서버 프로세스가 하나의 명령 프롬프트를 차지하게 되므로, 여러 Hugo 서버를 시작할 때 여러 명령 프롬프트를 열어 두어야 한다.

1개 프롬프트에서 여러 Hugo 서버 시작

Windows의 경우

Windows start명령을 사용하면, 백그라운드로 hugo 명령을 실행할 수 있으므로, 추가 명령 프롬프트를 열지 않고도 여러 Hugo 서버를 시작할 수 있다.

예를 들어, 다음 배치 파일은 백그라운드으로 3개의 Hugo 서버를 시작한다.
start-servers.bat

@echo off
start /b hugo server -p 50001 -s C:/website/site1
start /b hugo server -p 50002 -s C:/website/site2
start /b hugo server -p 50003 -s C:/website/site3
title Hugo Servers

마지막 라인에 title Hugo Servers라는 명령으로 명령 프롬프트의 창 제목을 “Hugo Servers"으로 변경한다. 윈도우 타이틀을 변경해 두면, 태스크 바를 본 것만으로 무엇을 위한 윈도우인지를 판별하기 쉬워지므로 추천한다.

백그라운드로 실행되는 Hugo 서버를 함께 종료하려면, taskkill 명령을 사용하여 hugo.exe 프로세스를 모두 종료한다.

stop-servers.bat

@echo off
taskkill /f /im hugo.exe

Linux, macOS의 경우

Linux, macOS의 경우에는 아래와 같이 마지막에 &를 붙여서, hugo 명령 실행하면 간단하게 여러 서버를 백그라운드러 시작할 수가 있다.
start-servers.sh

hugo server -p 50001 -s ~/website/site1 &
hugo server -p 50002 -s ~/website/site2 &
hugo server -p 50003 -s ~/website/site3 &

Hugo 서버 프로세스를 함께 종료하려면 killall 명령으로 쉽게 종료할 수 있다.
stop-servers.sh

killall hugo

아니면 쉘 스크립트가 아니라, 함수나 별칭으로 정의하여 사용하면 빠를 것이다.
~/.bash_profile

function hugo-start {
    hugo server -p 50001 -s ~/website/site1 &
    hugo server -p 50002 -s ~/website/site2 &
    hugo server -p 50003 -s ~/website/site3 &
}

function hugo-stop {
    killall hugo
}



최종 수정 : 2023-05-14