| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | package daemonimport (	"errors"	"runtime"	"time"	"github.com/gravitl/netmaker/netclient/config")// InstallDaemon - Calls the correct function to install the netclient as a daemon service on the given operating system.func InstallDaemon(cfg *config.ClientConfig) error {	os := runtime.GOOS	var err error	switch os {	case "windows":		err = SetupWindowsDaemon()	case "darwin":		err = SetupMacDaemon()	case "linux":		err = SetupSystemDDaemon()	case "freebsd":		err = SetupFreebsdDaemon()	default:		err = errors.New("this os is not yet supported for daemon mode. Run join cmd with flag '--daemon off'")	}	return err}// Restart - restarts a system daemonfunc Restart() error {	os := runtime.GOOS	var err error	time.Sleep(time.Second)	switch os {	case "windows":		RestartWindowsDaemon()	case "darwin":		RestartLaunchD()	case "linux":		RestartSystemD()	case "freebsd":		FreebsdDaemon("restart")	default:		err = errors.New("this os is not yet supported for daemon mode. Run join cmd with flag '--daemon off'")	}	return err}// Stop - stops a system daemonfunc Stop() error {	os := runtime.GOOS	var err error	time.Sleep(time.Second)	switch os {	case "windows":		StopWindowsDaemon()	case "darwin":		StopLaunchD()	case "linux":		StopSystemD()	case "freebsd":		FreebsdDaemon("stop")	default:		err = errors.New("no OS daemon to stop")	}	return err}
 |