Hugo サーバーの複数起動について
複数のサイトを Hugo で運用しているケースでは、ひとつのコマンドプロンプトから同時にサーバー起動できると便利です。
ここでは、下記のようにホームディレクトリ以下に複数の Hugo プロジェクトが存在するとします。
C:/website/site1
C:/website/site2
C:/website/site3
各 Hugo プロジェクトに対して Hugo サーバーを起動するには、例えば次のように実行していきます。
ただし、上記のようにすると、1 つのサーバープロセスが 1 つのコマンドプロンプトを占有するため、複数の Hugo サーバーを起動しているときに複数のコマンドプロンプトを開いたままにしなければいけません。
1 つのターミナルで複数の Hugo サーバーを起動する
Windows の場合
Windows の start
コマンドを使用すると、バックグラウンドで hugo
コマンドを実行することができるので、追加でコマンドプロンプトを開くことなしに複数の Hugo サーバーを起動することができます。
例えば、下記のバッチファイルは、3つの Hugo サーバーをバックグラウンドで起動します。
title Hugo Servers
では、コマンドプロンプトのウィンドウタイトルを Hugo Servers に変更しています。
ウィンドウタイトルを変更しておくと、タスクバーを見ただけで何のためのウィンドウなのかを判別しやすくなるのでお勧めです。バックグラウンドで動作している Hugo サーバーをまとめて終了するには、例えば、taskkill
コマンドを使用して、hugo.exe
によるプロセスをまとめて終了します。
Windows の start
コマンドや、taskkill
コマンドの詳細は、まくまく Windows ノートを参照してください。
Linux の場合
Linux や macOS の場合は、下記のように末尾に &
を付けて hugo
コマンド実行すれば、簡単に複数のサーバーをバックグラウンドで立ち上げることができます。
Hugo サーバーのプロセスをまとめて終了したいときは、killall
コマンドで簡単に終了できます。
これくらいの規模であれば、シェルスクリプトではなく、関数やエイリアスとして定義してしまうのが手っ取り早いかもしれません。