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

2018年2月9日15:29:38 发表评论 3,693 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

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

四、使用效果

GIF效果图

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

五、异常排查

如果您的是java 进程,使用nohub 还追加日志那种,一样不要在进程里写入,否这会加载异常,或者没有cpu,内存数据,主要原因是 书写格式问题引发的。

nohup java -Xms128m -Xmx256m  -jar xxx.jar        #后面不要追加日志 他会自动生成的

## -Xms 最小内存
## -Xmx 最大内存

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

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
广告也精彩
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: