🐁
Goで作られたsupervisorを試してみる(失敗)
supervisorの説明は割愛します。
今回はAWS(EC2)でデーモン化するまでやります。
yumを最新にアップデート。
$ sudo yum update
goを入れる。
$ amazon-linux-extras install golang1.11
$ export GOPATH="$HOME/go"
$ export PATH=$PATH:$GOPATH/bin
$ go version
go version go1.15.14 linux/amd64
supervisordを入れる。
$ mkdir ~/go-supervisor
$ export GOPATH=~/go-supervisor
$ export PATH=$PATH:$GOPATH/bin
$ go get -u github.com/ochinchina/supervisord
$ supervisord version
v0.6.8
テスト用にgoプロジェクトを用意する。
今回は5秒に1回ログを出す。
package main
import (
"log"
"time"
)
func init() {
log.SetPrefix("[MAIN]")
}
func main() {
for {
log.Println("Hello")
time.Sleep(5 * time.Second)
}
}
ビルドしておく。
$ go build hello.go
~/go-supervisorにsupervisor.confを作成して編集する。
[program:test]
command=/home/ec2-user/go-supervisor/hello
autostart=true
autorestart=true
stdout_logfile=/home/ec2-user/go-supervisor/hello.log
supervisorを起動する。
$ supervisord -c supervisor.conf -d
supervisorが動いているか確認する。OK。
$ supervisord ctl status
test Running pid 27080, uptime 0:01:55
ここまでやったけどログに何も追加されない。
supervisorの影響か、ビルドしたgoファイルの影響か...
Discussion