supervisor用为golang后台创建守护进程

ponpon_ · · 1372 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

supervisor是一个unix的系统进程管理软件,可以用它来管理apache、nginx等服务,若服务挂了可以让它们自动重启。下面基于centos 6.6,描述下具体实现:

sudo聽yum聽install聽python-setuptools
sudo聽easy_install聽supervisor

如果没有看到什么报错,那么就安装成功了,可以使用echo_supervisord_conf查看配置详情,而后生成配置文件。

sudo聽echo_supervisord_conf聽>聽/etc/supervisord.conf

假设如下一段简单的golang代码:

package main
import (
聽聽聽聽"fmt"
聽聽聽聽"log"
聽聽聽聽"net/http"
)
func main() {
聽聽聽聽http.HandleFunc("/",聽func(w http.ResponseWriter, r *http.Request) {
聽聽聽聽聽聽聽聽fmt.Fprintf(w,聽"Hello world")
聽聽聽聽})
聽聽聽聽err := http.ListenAndServe(":9090", nil)
聽聽聽聽if err != nil {
聽聽聽聽聽聽聽聽log.Fatal("ListenAndServe: ", err)
聽聽聽聽}
}


go build编译,在/usr/local/ponpon/gowork/src/test/生成可执行文件test。

编辑/etc/supervisord.conf,在最后增加运行程序设置


[program:go-http-server]
command=/usr/local/ponpon/gowork/src/test/test
directory=/usr/local/ponpon/gowork/src/test
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/var/log/stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB

几个配置说明:

command:表示运行的命令,填入完整的路径即可。

directory:表示cd到应用的目录下
autostart:表示是否跟随supervisor一起启动。
autorestart:如果该程序挂了,是否重新启动。
stdout_logfile:终端标准输出重定向文件。
stderr_logfile:终端错误输出重定向文件。

最后启动supervisor

sudo聽/usr/bin/supervisord聽-c聽/etc/supervisord.conf

如果提示/tmp/supervisord.sock 报错,删除/tmp/supervisord.sock重新启动supervisor即可

本文出自 “Programming in XMU” 博客,请务必保留此出处http://liuxp0827.blog.51cto.com/5013343/1643620


有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:ponpon_

查看原文:supervisor用为golang后台创建守护进程

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1372 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传