MCPcopy
hub / github.com/cloudflare/cloudflared / uninstallWindowsService

Function uninstallWindowsService

cmd/cloudflared/windows_service.go:228–262  ·  view source on GitHub ↗
(c *cli.Context)

Source from the content-addressed store, hash-verified

226}
227
228func uninstallWindowsService(c *cli.Context) error {
229 log := logger.CreateLoggerFromContext(c, logger.EnableTerminalLog).
230 With().
231 Str(LogFieldWindowsServiceName, windowsServiceName).Logger()
232
233 log.Info().Msg("Uninstalling cloudflared agent service")
234 m, err := mgr.Connect()
235 if err != nil {
236 return errors.Wrap(err, "Cannot establish a connection to the service control manager")
237 }
238 defer m.Disconnect()
239 s, err := m.OpenService(windowsServiceName)
240 if err != nil {
241 return fmt.Errorf("agent service %s is not installed, so it could not be uninstalled", windowsServiceName)
242 }
243 defer s.Close()
244
245 if status, err := s.Query(); err == nil && status.State == svc.Running {
246 log.Info().Msg("Stopping cloudflared agent service")
247 if _, err := s.Control(svc.Stop); err != nil {
248 log.Info().Err(err).Msg("Failed to stop cloudflared agent service, you may need to stop it manually to complete uninstall.")
249 }
250 }
251
252 err = s.Delete()
253 if err != nil {
254 return errors.Wrap(err, "Cannot delete agent service")
255 }
256 log.Info().Msg("Agent service for cloudflared was uninstalled successfully")
257 err = eventlog.Remove(windowsServiceName)
258 if err != nil {
259 return errors.Wrap(err, "Cannot remove event logger")
260 }
261 return nil
262}
263
264// defined in https://msdn.microsoft.com/en-us/library/windows/desktop/ms685126(v=vs.85).aspx
265type scAction int

Callers

nothing calls this directly

Calls 6

CreateLoggerFromContextFunction · 0.92
LoggerMethod · 0.80
ErrorfMethod · 0.80
CloseMethod · 0.65
RemoveMethod · 0.65
ErrMethod · 0.45

Tested by

no test coverage detected