diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5f8ce41..3b0d140 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,6 @@ jobs: strategy: matrix: os: - - ubuntu-18.04 - ubuntu-20.04 - ubuntu-22.04 - windows-2019 diff --git a/agent.go b/agent.go index 1181e81..f901478 100644 --- a/agent.go +++ b/agent.go @@ -100,3 +100,12 @@ func Status(app App) (service.Status, error) { } return svc.Status() } + +// Restart 重启agent +func Restart(app App) error { + svc, err := newService(app) + if err != nil { + return err + } + return svc.Restart() +} diff --git a/service.go b/service.go index b260086..3be83eb 100644 --- a/service.go +++ b/service.go @@ -8,6 +8,7 @@ type builtinService interface { Run() error Start() error Stop() error + Restart() error Status() (service.Status, error) Platform() string } diff --git a/service_windows_386.go b/service_windows_386.go index 2f35748..499cec3 100644 --- a/service_windows_386.go +++ b/service_windows_386.go @@ -185,3 +185,11 @@ func (svr *svr) Status() (service.Status, error) { return service.StatusUnknown, nil } } + +func (svr *svr) Restart() error { + err := svr.Stop() + if err != nil { + return err + } + return svr.Start() +}