...

Source file src/github.com/shirou/gopsutil/winservices/manager.go

Documentation: github.com/shirou/gopsutil/winservices

     1  // +build windows
     2  
     3  package winservices
     4  
     5  import (
     6  	"golang.org/x/sys/windows/svc/mgr"
     7  )
     8  
     9  type scmanager struct {
    10  	mgr *mgr.Mgr
    11  }
    12  
    13  func openSCManager() (*scmanager, error) {
    14  	m, err := mgr.Connect()
    15  	if err != nil {
    16  		return nil, err
    17  	}
    18  	return &scmanager{m}, nil
    19  }
    20  
    21  func (sc *scmanager) close() error {
    22  	return sc.mgr.Disconnect()
    23  }
    24  
    25  func getService(serviceName string) (*mgr.Service, error) {
    26  	m, err := openSCManager()
    27  	if err != nil {
    28  		return nil, err
    29  	}
    30  	defer m.close()
    31  	return m.mgr.OpenService(serviceName)
    32  }
    33  

View as plain text