Skip to main content

One post tagged with "go"

View All Tags

· 2 min read

你是否遇到这样的情形,费了好大功夫把服务部署上线,但是某一时刻因为停电而导致服务挂掉

通电后,你又把之前的动作给做了一遍,这种重复性工作不仅耗时,还有可能出错; 有人说我可以写个脚本让它自己去操作,但是还是需要手动去开启服务

我们的目标是无需人为干预,开机自动启动服务

我们可以使用docker或者借用flag包,把系统重启时拿不到的环境变量写在配置文件里

这样稍微配置一下crontab就可以达到开机自动重启服务的目的

以下是个小demo, 默认它会读取项目目录下的config.json, 服务真正上线时需要用-c指定配置文件的位置

package main

import (
"flag"
"fmt"
)

func main() {
var myConfigFile string
flag.StringVar(&myConfigFile, "c", "./config.json", "the position of the config file")
flag.Parse()
fmt.Println(myConfigFile) //go run main.go -c /some/path/file
}