修改frpc异步执行
This commit is contained in:
parent
626dbaa92c
commit
0749c2eb4d
@ -36,7 +36,7 @@ func NewService(pxyCfgs map[string]config.ProxyConf, visitorCfgs map[string]conf
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (svr *Service) Run() error {
|
func (svr *Service) Run(cmd bool) error {
|
||||||
err := svr.ctl.Run()
|
err := svr.ctl.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -50,7 +50,13 @@ func (svr *Service) Run() error {
|
|||||||
log.Info("admin server listen on %s:%d", g.GlbClientCfg.AdminAddr, g.GlbClientCfg.AdminPort)
|
log.Info("admin server listen on %s:%d", g.GlbClientCfg.AdminAddr, g.GlbClientCfg.AdminPort)
|
||||||
}
|
}
|
||||||
|
|
||||||
<-svr.closedCh
|
if cmd {
|
||||||
|
<-svr.closedCh
|
||||||
|
} else {
|
||||||
|
go func() {
|
||||||
|
<-svr.closedCh
|
||||||
|
}()
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,13 +95,20 @@ var rootCmd = &cobra.Command{
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if cmd model
|
||||||
|
var cmd bool
|
||||||
|
|
||||||
|
var service *client.Service
|
||||||
|
|
||||||
func Execute() {
|
func Execute() {
|
||||||
|
cmd = true
|
||||||
if err := rootCmd.Execute(); err != nil {
|
if err := rootCmd.Execute(); err != nil {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func RunFrpc(cfgFilePath string) (err error) {
|
func RunFrpc(cfgFilePath string) (err error) {
|
||||||
|
cmd = false
|
||||||
return runClient(cfgFilePath)
|
return runClient(cfgFilePath)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,12 +215,23 @@ func startService(pxyCfgs map[string]config.ProxyConf, visitorCfgs map[string]co
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
svr := client.NewService(pxyCfgs, visitorCfgs)
|
svr := client.NewService(pxyCfgs, visitorCfgs)
|
||||||
|
service = svr
|
||||||
|
|
||||||
// Capture the exit signal if we use kcp.
|
// Capture the exit signal if we use kcp.
|
||||||
if g.GlbClientCfg.Protocol == "kcp" {
|
if g.GlbClientCfg.Protocol == "kcp" {
|
||||||
go handleSignal(svr)
|
go handleSignal(svr)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = svr.Run()
|
err = svr.Run(cmd)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func StopFrp() (err error) {
|
||||||
|
if service == nil {
|
||||||
|
return fmt.Errorf("frp not start")
|
||||||
|
}
|
||||||
|
|
||||||
|
service.Close()
|
||||||
|
log.Info("frpc is stoped")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user