Go で作ったプロダクトを Supervisor を使ってデーモン化させる

Golang でアプリケーション (main.go) をデーモン化させる Supervisor を使う

Supervisor とは

main.go をずっと起動させておきたい時に使うデーモン化。
サーバーからログアウトしても main.go をずっと起動させたままにするやつ。
デーモン化という。

Supervisor のインストール

$ yum -y install supervisor

# 起動 → 常駐化 → 確認
$ systemctl start supervisord.service
$ systemctl enable supervisord.service
$ systemctl status supervisord.service

Supervisor の設定

$ cd /etc/supervisord.d
$ vi smaple.ini

smaple.ini

[program:sample]
command=/path/to/go/src/your/project/main
autostart = true
startsecs = 5
user = root
redirect_stderr = true
stdout_logfile = /var/log/supervisor/sample.log

supervisord 再起動 & デーモン化

$ systemctl start supervisord.service
$ supervisorctl restart all

ビルド

$ cd /path/to/go/src/your/project
$ go build main.go

主な Supervisor コマンド

# サービスの開始
$ supervisorctl start all

# サービスの再起動
$ supervisorctl restart all

# サービスの停止
$ supervisorctl stop all