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