Goreman 基本用法
Goreman
Goreman 是一个Foreman的Go语言的克隆版本,一般在开发过程中的调试多个进程时使用。
当前开发趋势中,微服务架构以及分布式架构很流行,很多应用依赖于其它应用或者集群化。这样在本地调试时,会有很多不方便的地方。而使用Goreman同时批量管理多个进程,可以方便开发。
下载安装
可以通过go get
来下载安装最二进制文件
go get github.com/mattn/goreman
也可以在releases页面下载相应平台的最新二进制执行文件zip包。 然后将解压出来的二进制文件放置于你的PATH路径下。
配置文件
与Foreman
使用方法相同,都是基于Procfile
配置文件来运行的。其中Procfile
文件内容与你正常在shell中执行命令大致相同。如etcd
的Procfile文件示例:
# Use goreman to run `go get github.com/mattn/goreman`
etcd1: bin/etcd --name infra1 --listen-client-urls http://127.0.0.1:2379 --advertise-client-urls http://127.0.0.1:2379 --listen-peer-urls http://127.0.0.1:12380 --initial-advertise-peer-urls http://127.0.0.1:12380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http://127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new --enable-pprof
etcd2: bin/etcd --name infra2 --listen-client-urls http://127.0.0.1:22379 --advertise-client-urls http://127.0.0.1:22379 --listen-peer-urls http://127.0.0.1:22380 --initial-advertise-peer-urls http://127.0.0.1:22380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http://127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new --enable-pprof
etcd3: bin/etcd --name infra3 --listen-client-urls http://127.0.0.1:32379 --advertise-client-urls http://127.0.0.1:32379 --listen-peer-urls http://127.0.0.1:32380 --initial-advertise-peer-urls http://127.0.0.1:32380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http://127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new --enable-pprof
#proxy: bin/etcd grpc-proxy start --endpoints=127.0.0.1:2379,127.0.0.1:22379,127.0.0.1:32379 --listen-addr=127.0.0.1:23790 --advertise-client-url=127.0.0.1:23790 --enable-pprof
比如这里的配置文件表示启动三个etcd进程来构建一个本地的etcd
集群。
配置文件格式为:
# 进程名: 执行进程所用命令
# 示例
web: bundle exec thin start -p $PORT
使用方法
由于goreman是默认使用当前目录下的Procfile
配置文件,所以运行前请确保正确配置。
检查配置文件是否正确:
goreman check
如果配置文件正确,会打印出类似如下内容
valid procfile detected (etcd1, etcd2, etcd3)
启动服务(在配置文件目录下)
goreman start # 如果你想使用一个自定义名称作为配置文件名称 goreman -f myprocfile start
在运行时,
goreman
会独占当前shell窗口。直接使用Ctrl + c
即可退出运行状态。查看状态
goreman run status
正常运行状态如下(前面带
*
号的即是正常状态):*etcd1 *etcd2 *etcd3
停止某个进程
goreman run stop PROCESS_NAME
如停止上面etcd集群中的第二个
etcd2
,直接goreman run stop etcd2
即可。再次查看状态,会显示如下:*etcd1 etcd2 *etcd3
启动某个已停止进程
goreman run start PROCESS_NAME
重启某个进程
goreman run restart PROCESS_NAME