func run(s service.Service, m *supervisorgo.Manager, u *url.URL) int { var err error var l net.Listener path := jsonrpc.DefaultRPCPath switch u.Scheme { case "unix": l, err = net.Listen(u.Scheme, u.Opaque+u.Path) if l != nil { defer os.Remove(u.Opaque + u.Path) } case "http": l, err = net.Listen("tcp", u.Host) path = u.Path default: err = fmt.Errorf("not supported scheme: %s", u.Scheme) } if err != nil { log.Println(err) return 1 } m.HTTPServe(path) go http.Serve(l, nil) err = s.Run() if err != nil { log.Println(err) return 1 } return 0 }