// Start will take a launchable and start every runit service associated with the launchable. // All services will attempt to be started. func (hl *Launchable) start(serviceBuilder *runit.ServiceBuilder, sv runit.SV) error { executables, err := hl.Executables(serviceBuilder) if err != nil { return err } for _, executable := range executables { var err error if hl.RestartPolicy == runit.RestartPolicyAlways { _, err = sv.Restart(&executable.Service, hl.RestartTimeout) } else { _, err = sv.Once(&executable.Service) } if err != nil && err != runit.SuperviseOkMissing && err != runit.Killed { return err } if _, err = sv.Restart(&executable.LogAgent, runit.DefaultTimeout); err != nil && err != runit.Killed { return err } } return nil }
func (l *Launchable) start(serviceBuilder *runit.ServiceBuilder, sv runit.SV) error { executables, err := l.Executables(serviceBuilder) if err != nil { return err } for _, executable := range executables { var err error if l.RestartPolicy == runit.RestartPolicyAlways { _, err = sv.Restart(&executable.Service, l.RestartTimeout) } else { _, err = sv.Once(&executable.Service) } if err != nil && err != runit.SuperviseOkMissing { return err } } return nil }