fix start background server

master
codeskyblue 8 years ago
parent b5d41896f5
commit 52ac079b7b

@ -37,21 +37,28 @@ func connect(ctx *cli.Context) (cc *grpc.ClientConn, err error) {
return conn, err
}
func startBackgroundServer() error {
cmd := exec.Command(os.Args[0], "serv")
timeout := time.Millisecond * 500
er := <-GoTimeoutFunc(timeout, cmd.Run)
if er == ErrGoTimeout {
return nil
}
return fmt.Errorf("server stared failed, %v", er)
}
func DialWithRetry(network, address string) (conn *grpc.ClientConn, err error) {
conn, err = grpcDial(network, address)
if err == nil {
return
} else {
cmd := exec.Command(os.Args[0], "serv")
timeout := time.Millisecond * 500
er := <-GoTimeoutFunc(timeout, cmd.Run)
if er == ErrGoTimeout {
fmt.Println("server started")
} else {
return nil, fmt.Errorf("server stared failed, %v", er)
if network == "unix" {
if _, er := os.Stat(address); er != nil {
if err = startBackgroundServer(); err != nil {
log.Warnf("Server started failed.")
return nil, err
} else {
log.Info("gosuv server started")
}
}
return grpcDial(network, address)
}
return grpcDial(network, address)
}
func wrap(f interface{}) func(*cli.Context) {

Loading…
Cancel
Save