构建 golang 写的 supervisord ,并使用配置

本文的原文连接是:
http://blog.csdn.net/freewebsys/article/details/79129390

1,关于supervisord


是一个supervisord 是一个 golang 写的一个进程管理工具。
https://github.com/ochinchina/supervisord
项目地址github。
python 有一个supervisor,这个和那个类似。
主要是因为这个是golang 写的可以给alpine 使用,也就几MB。
不用安装python 环境非常小。
docker 启动主进程 supervisord,然后再启动服务进程。
这样要是没有启动来可以进去看看啥问题,修改配置文件。
看看日志啥的都非常的方便。要不然直接docker 就没有起来。
报linux 错误。啥的都看不详细。

2,编译安装


项目使用govendor 进行依赖管理。

#安装
go get -u github.com/kardianos/govendor
go install github.com/kardianos/govendor

#初始化
govendor init
#加入本地 vendor目录当中。
govendor add +external
#查看生成列表。
govendor list

govendor fetch github.com/gorilla/rpc
govendor fetch github.com/jessevdk/go-flags
govendor fetch github.com/ochinchina/go-ini
govendor fetch github.com/ochinchina/gorilla-xmlrpc/xml
govendor fetch github.com/sevlyar/go-daemon

弄好了之后的vendor,目录文件夹。
构建 golang 写的 supervisord ,并使用配置_第1张图片

然后go build 就可以啦。

3,配置文件


特别的简单 supervisord.conf

[inet_http_server]
port=127.0.0.1:9001

[program:router]
command = /opt/router.a -c /opt/router.conf
stdout_logfile=/data/logs/router.log

[program:logic]
command = /opt/logic.a -c /opt/logic.conf
stdout_logfile=/data/logs/logic.log

[program:comet]
command = /opt/comet.a -c /opt/comet.conf
stdout_logfile=/data/logs/comet.log

[program:job]
command = /opt/job.a -c /opt/job.conf
stdout_logfile=/data/logs/job.log

需要在 program:xxxx 这样的配置下就行了。
当时发现一个问题,日志没有,没有定向输出日志。
必须要配置 stdout_logfile 到一个文件当中。
上面的是一个 goim 的启动,让router logic comet job 这几个服务。
一起启动起来,并且在监控中,如果进程死了。重新拉起来。

docker 启动配置:-c 指向配置文件

/opt/supervisord -c supervisor.conf

4,总结


使用 supervisord 还是非常方便的,就是官方没有上传 vender 文件夹。
需要自己下载 依赖包。
使用超级简单,一个配置文件就好了。
然后管理多个进程,并且进程死掉了,可以重新拉起来。

本文的原文连接是:
http://blog.csdn.net/freewebsys/article/details/79129390

你可能感兴趣的:(构建 golang 写的 supervisord ,并使用配置)