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
}