🐁

Goで作られたsupervisorを試してみる(失敗)

2021/10/17に公開

https://github.com/ochinchina/supervisord
https://hub.docker.com/r/ochinchina/supervisord

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