るいすときのこの物語

オタクエンジニアの雑記

GolangのGinをSystemdで動かすのにハマった


背景

デプロイ先のサーバーでビルドしたものを 以下のような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...難しい。