MCPcopy Index your code
hub / github.com/cloudflare/cloudflared / uninstallSystemd

Function uninstallSystemd

cmd/cloudflared/linux_service.go:370–410  ·  view source on GitHub ↗
(log *zerolog.Logger)

Source from the content-addressed store, hash-verified

368}
369
370func uninstallSystemd(log *zerolog.Logger) error {
371 // Get only the installed services
372 installedServices := make(map[string]ServiceTemplate)
373 for serviceName, serviceTemplate := range systemdAllTemplates {
374 if err := runCommand("systemctl", "list-units", "--all", "|", "grep", serviceName); err == nil {
375 installedServices[serviceName] = serviceTemplate
376 } else {
377 log.Info().Msgf("Service '%s' not installed, skipping its uninstall", serviceName)
378 }
379 }
380
381 if _, exists := installedServices[cloudflaredService]; exists {
382 if err := runCommand("systemctl", "disable", cloudflaredService); err != nil {
383 log.Err(err).Msgf("systemctl disable %s error", cloudflaredService)
384 return err
385 }
386 if err := runCommand("systemctl", "stop", cloudflaredService); err != nil {
387 log.Err(err).Msgf("systemctl stop %s error", cloudflaredService)
388 return err
389 }
390 }
391
392 if _, exists := installedServices[cloudflaredUpdateTimer]; exists {
393 if err := runCommand("systemctl", "stop", cloudflaredUpdateTimer); err != nil {
394 log.Err(err).Msgf("systemctl stop %s error", cloudflaredUpdateTimer)
395 return err
396 }
397 }
398
399 for _, serviceTemplate := range installedServices {
400 if err := serviceTemplate.Remove(); err != nil {
401 log.Err(err).Msg("error removing service template")
402 return err
403 }
404 }
405 if err := runCommand("systemctl", "daemon-reload"); err != nil {
406 log.Err(err).Msg("systemctl daemon-reload error")
407 return err
408 }
409 return nil
410}
411
412func uninstallSysv(log *zerolog.Logger) error {
413 if err := runCommand("service", "cloudflared", "stop"); err != nil {

Callers 1

uninstallLinuxServiceFunction · 0.85

Calls 3

runCommandFunction · 0.70
RemoveMethod · 0.65
ErrMethod · 0.45

Tested by

no test coverage detected