GO语言的进程管理工具-实践

2018年2月9日15:29:38 发表评论 940 views

收 藏

目录

GO 编写的进程管理工具 Gosuv

Gosuv是一个进程管理工具,使用Go语言编写。与python-supervisor的功能和用法类似。

一、Gosuv的特点:

Web控制台部分做了重点加强,因为使用频率太高了,在网页上现在可以直接添加先的应用,网页查看日志的部分也做了优化,查看起来没有这么费劲了。使用了websocket连接后端,状态一有变化,前台就能立刻看到变化。

reload命令不在是重启的命令,而是重新读取配置文件,并应用已经更改的那部分。

日志部分对于带有ansi color的输出,再也不会报XML RPC错误了,这个只有用python的xml rpc库才会出这个问题,用Go语言写自然不会有这个问题。

配置文件也被我全部换成yaml格式的了,修改起来方便很多。所以的配置全部都放在了一个文件中,方便程序自动化的管理。

增加的CPU和内存的监控

默认killasgroup,所有启动程序在停止后,不会有残余的进程

加入了fatal状态的pushover通知的功能

支持了github的webhook,在github代码更新的时候,可以触发更新命令,并重启程序

gosuv程序加入了自更新功能

二、部署环境

法1:使用脚本自动部署

curl https://raw.githubusercontent.com/codeskyblue/gosuv/master/get.sh | bash

法2:直接下载源码压缩包,解压直接启动即可(百度云连接如下)

链接:https://pan.baidu.com/s/1Xwh4M_3JoSBygTFyW4HnNQ 密码:x5qp

官方文档:https://github.com/codeskyblue/gosuv

对,你没看错就一条命令,搞定,详细信息及使用方法,可以参考官方文档

三、配置gosuv

1) 启动服务

[root@backup ~]# gosuv start-server

server started, listening on 0.0.0.0:11313

2)查看状态

[root@backup ~]# gosuv status

```b

3)重启单个进程

```bash

$ gosuv stop test

$ gosuv start test

4)web访问

http://localhost:11313

5)添加访问 用户密码认证功能

[root@backup ~]# cat /root/.gosuv/config.yml

server:

httpauth:

enabled: true ##将false改为true 开启认证模式

username: 用户名

password: 密码

addr: :11313

client:

server_url: http://localhost:11313

重启服务

$ gosuv shutdown 关闭程序

$ gosuv start-server