This commit is contained in:
gotoeasy 2022-09-13 09:08:26 +08:00
parent 223a0ed87a
commit 79ebd83c25
5 changed files with 44 additions and 3 deletions

View File

@ -55,6 +55,8 @@ docker run -d -p 8080:8080 -v /glc:/glogcenter gotoeasy/glc
- [x] `GLC_AMQP_ADDR`消息队列`rabbitMq`连接地址,例:`amqp://user:password@ip:port/`,默认空白
- [x] `GLC_AMQP_JSON_FORMAT`消息队列`rabbitMq`消息文本是否为`json`格式,默认`true`
## 命令行启动参数
- [x] 支持命令行参数`-d`以后台方式启动
## 接口
@ -111,6 +113,7 @@ docker run -d -p 8080:8080 -v /glc:/glogcenter gotoeasy/glc
- [ ] 多语言
- [ ] 分词优化
- [x] 升级使用Go1.19
- [x] 支持命令行参数使用`-d`以后台方式启动
### 版本`0.5.0`

View File

@ -40,5 +40,5 @@ RUN alpine_version=`cat /etc/issue | head -1 | awk '{print $5}'` \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone \
&& rm -rf /var/cache/apk/*
EXPOSE 8080
EXPOSE 18080
ENTRYPOINT ["glc"]

View File

@ -33,6 +33,13 @@ var password string
func init() {
UpdateConfigByEnv()
// 自动判断创建目录
_, err := os.Stat(storeRoot)
if err != nil && os.IsNotExist(err) {
os.MkdirAll(storeRoot, 0766)
}
}
func UpdateConfigByEnv() {
@ -41,7 +48,7 @@ func UpdateConfigByEnv() {
storeChanLength = GetenvInt("GLC_STORE_CHAN_LENGTH", 64) // 存储通道长度
maxIdleTime = GetenvInt("GLC_MAX_IDLE_TIME", 180) // 最大闲置时间(秒),超过闲置时间将自动关闭0时表示不关闭
storeNameAutoAddDate = GetenvBool("GLC_STORE_NAME_AUTO_ADD_DATE", true) // 存储名是否自动添加日期日志量大通常按日单位区分存储默认true
serverPort = GetenvInt("GLC_SERVER_PORT", 8080) // web服务端口
serverPort = GetenvInt("GLC_SERVER_PORT", 18080) // web服务端口默认18080
contextPath = Getenv("GLC_CONTEXT_PATH", "/glc") // web服务contextPath
enableSecurityKey = GetenvBool("GLC_ENABLE_SECURITY_KEY", false) // web服务是否开启API秘钥校验默认false
headerSecurityKey = Getenv("GLC_HEADER_SECURITY_KEY", "X-GLC-AUTH") // web服务API秘钥的header键名

31
glc/onstart/daemon.go Normal file
View File

@ -0,0 +1,31 @@
package onstart
import (
"flag"
"fmt"
"os"
"os/exec"
"runtime"
)
func init() {
// 操作系统是linux时支持以命令行参数【-d】后台方式启动
daemon := false
for index, arg := range os.Args {
if runtime.GOOS == "linux" && index > 0 && arg == "-d" {
daemon = true
break
}
}
if daemon {
cmd := exec.Command(os.Args[0], flag.Args()...)
if err := cmd.Start(); err != nil {
fmt.Printf("start %s failed, error: %v\n", os.Args[0], err)
os.Exit(1)
}
fmt.Printf("%s [PID] %d running\n", os.Args[0], cmd.Process.Pid)
os.Exit(0)
}
}

View File

@ -40,7 +40,7 @@ func NewSimpleRabbitMQ() (*RabbitMQ, error) {
// 关闭连接
func (r *RabbitMQ) Close() {
if r.closing {
if r == nil || r.closing {
return
}