-func (runner runServiceCommand) Run(ctx context.Context, fail func(error), boot *Booter) error {
- boot.wait(ctx, runner.depends...)
- go func() {
- var u arvados.URL
- for u = range runner.svc.InternalURLs {
+func (runner runServiceCommand) Run(ctx context.Context, fail func(error), super *Supervisor) error {
+ binfile := filepath.Join(super.bindir, "arvados-server")
+ err := super.RunProgram(ctx, super.bindir, runOptions{}, binfile, "-version")
+ if err != nil {
+ return err
+ }
+ super.wait(ctx, createCertificates{})
+ super.wait(ctx, runner.depends...)
+ for u := range runner.svc.InternalURLs {
+ u := u
+ if islocal, err := addrIsLocal(u.Host); err != nil {
+ return err
+ } else if !islocal {
+ continue