安装服务
(exePath string, args []string)
| 15 | |
| 16 | // 安装服务 |
| 17 | func (this *ServiceManager) Install(exePath string, args []string) error { |
| 18 | m, err := mgr.Connect() |
| 19 | if err != nil { |
| 20 | return fmt.Errorf("connecting: %w please 'Run as administrator' again", err) |
| 21 | } |
| 22 | defer m.Disconnect() |
| 23 | s, err := m.OpenService(this.Name) |
| 24 | if err == nil { |
| 25 | s.Close() |
| 26 | return fmt.Errorf("service %s already exists", this.Name) |
| 27 | } |
| 28 | |
| 29 | s, err = m.CreateService(this.Name, exePath, mgr.Config{ |
| 30 | DisplayName: this.Name, |
| 31 | Description: this.Description, |
| 32 | StartType: windows.SERVICE_AUTO_START, |
| 33 | }, args...) |
| 34 | if err != nil { |
| 35 | return fmt.Errorf("creating: %w", err) |
| 36 | } |
| 37 | defer s.Close() |
| 38 | |
| 39 | return nil |
| 40 | } |
| 41 | |
| 42 | // 启动服务 |
| 43 | func (this *ServiceManager) Start() error { |