你是否遇到这样的情形,费了好大功夫把服务部署上线,但是某一时刻因为停电而导致服务挂掉
通电后,你又把之前的动作给做了一遍,这种重复性工作不仅耗时,还有可能出错; 有人说我可以写个脚本让它自己去操作,但是还是需要手动去开启服务
我们的目标是无需人为干预,开机自动启动服务
我们可以使用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
}