背景

デプロイ先のサーバーでビルドしたものを
以下のようなUnitファイルを作ったら起動できなかった話

[Unit]
Description=Run Gin
[Service]
User=root
Group=root
Environment="SERVER_ENV=production"
ExecStart=/home/jenkins/go/src/hoge/gin release
Restart=always
KillMode=process
[Install]
WantedBy=multi-user.target

 

systemctl -l status hoge とやってもエラーが分からず
/var/log/messagesを見るとpanic: html/template: pattern matches no files: templates/*が出力されてました。

賢い人ならこんなミスをしないと思うけど…;;

 

解決

[Unit]
Description=Run Gin
[Service]
User=root
Group=root
Environment="SERVER_ENV=production"
WorkingDirectory=/home/jenkins/go/src/hoge
ExecStart=/home/jenkins/go/src/hoge/gin release
Restart=always
KillMode=process
[Install]
WantedBy=multi-user.target

WorkingDirectoryを追加して実行パスを適切に設定してあげれば
起動できるようになりました。

Golang…難しい。