netmaker/netclient/daemon/common.go
2022-02-02 00:02:36 -05:00

52 lines
1 KiB
Go

package daemon
import (
"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
interval := "15"
if cfg.Server.CheckinInterval != "" {
interval = cfg.Server.CheckinInterval
}
switch os {
case "windows":
err = SetupWindowsDaemon()
case "darwin":
err = SetupMacDaemon(interval)
case "linux":
err = SetupSystemDDaemon(interval)
default:
err = errors.New("this os is not yet supported for daemon mode. Run join cmd with flag '--daemon off'")
}
return err
}
func Restart() error {
os := runtime.GOOS
var err error
time.Sleep(time.Second)
switch os {
case "windows":
RestartWindowsDaemon()
case "darwin":
RestartLaunchD()
case "linux":
RestartSystemD()
default:
err = errors.New("this os is not yet supported for daemon mode. Run join cmd with flag '--daemon off'")
}
return err
}