updated service files for linux and darwin to start netclient daemon vice netclient checkin

This commit is contained in:
Matthew R Kasun
2022-01-19 16:16:12 -05:00
parent 746d90d109
commit 6a30bca315
2 changed files with 16 additions and 46 deletions

View File

@@ -19,8 +19,8 @@ func SetupMacDaemon(interval string) error {
} }
binarypath := dir + "/netclient" binarypath := dir + "/netclient"
if !ncutils.FileExists("/etc/netclient/netclient") { if !ncutils.FileExists("/sbin/netclient") {
err = ncutils.Copy(binarypath, "/etc/netclient/netclient") err = ncutils.Copy(binarypath, "/sbin/netclient")
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return err return err
@@ -49,6 +49,7 @@ func CleanupMac() {
} }
os.RemoveAll(ncutils.GetNetclientPath()) os.RemoveAll(ncutils.GetNetclientPath())
os.Remove("/sbin/netclient")
} }
func CreateMacService(servicename string, interval string) error { func CreateMacService(servicename string, interval string) error {
@@ -76,10 +77,8 @@ func MacDaemonString(interval string) string {
<key>Label</key><string>com.gravitl.netclient</string> <key>Label</key><string>com.gravitl.netclient</string>
<key>ProgramArguments</key> <key>ProgramArguments</key>
<array> <array>
<string>/etc/netclient/netclient</string> <string>/sbin/netclient</string>
<string>checkin</string> <string>daemon</string>
<string>-n</string>
<string>all</string>
</array> </array>
<key>StandardOutPath</key><string>/etc/netclient/com.gravitl.netclient.log</string> <key>StandardOutPath</key><string>/etc/netclient/com.gravitl.netclient.log</string>
<key>StandardErrorPath</key><string>/etc/netclient/com.gravitl.netclient.log</string> <key>StandardErrorPath</key><string>/etc/netclient/com.gravitl.netclient.log</string>

View File

@@ -29,12 +29,10 @@ func SetupSystemDDaemon(interval string) error {
log.Println("couldnt find or create /etc/netclient") log.Println("couldnt find or create /etc/netclient")
return err return err
} }
//install binary
if !ncutils.FileExists("/usr/local/bin/netclient") { //should check if the existing binary is the corect version -- for now only copy if file doesn't exist
os.Symlink("/etc/netclient/netclient", "/usr/local/bin/netclient") if !ncutils.FileExists("/usr/sbin/netclient") {
} err = ncutils.Copy(binarypath, "/usr/sbin/netclient")
if !ncutils.FileExists("/etc/netclient/netclient") {
err = ncutils.Copy(binarypath, "/etc/netclient/netclient")
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return err return err
@@ -42,36 +40,17 @@ func SetupSystemDDaemon(interval string) error {
} }
systemservice := `[Unit] systemservice := `[Unit]
Description=Network Check Description=Netclient message queue
Wants=netclient.timer
[Service] [Service]
Type=simple Type=simple
ExecStart=/etc/netclient/netclient checkin -n all ExecStart=/usr/sbin/netclient daemon
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
`
systemtimer := `[Unit]
Description=Calls the Netmaker Mesh Client Service
Requires=netclient.service
[Timer]
Unit=netclient.service
`
systemtimer = systemtimer + "OnCalendar=*:*:0/" + interval
systemtimer = systemtimer +
`
[Install]
WantedBy=timers.target
` `
servicebytes := []byte(systemservice) servicebytes := []byte(systemservice)
timerbytes := []byte(systemtimer)
if !ncutils.FileExists("/etc/systemd/system/netclient.service") { if !ncutils.FileExists("/etc/systemd/system/netclient.service") {
err = os.WriteFile("/etc/systemd/system/netclient.service", servicebytes, 0644) err = os.WriteFile("/etc/systemd/system/netclient.service", servicebytes, 0644)
@@ -80,25 +59,17 @@ WantedBy=timers.target
return err return err
} }
} }
if !ncutils.FileExists("/etc/systemd/system/netclient.timer") {
err = os.WriteFile("/etc/systemd/system/netclient.timer", timerbytes, 0644)
if err != nil {
log.Println(err)
return err
}
}
_, _ = ncutils.RunCmd("systemctl enable netclient.service", true) _, _ = ncutils.RunCmd("systemctl enable netclient.service", true)
_, _ = ncutils.RunCmd("systemctl daemon-reload", true) _, _ = ncutils.RunCmd("systemctl daemon-reload", true)
_, _ = ncutils.RunCmd("systemctl enable netclient.timer", true) _, _ = ncutils.RunCmd("systemctl start netclient.server", true)
_, _ = ncutils.RunCmd("systemctl start netclient.timer", true)
return nil return nil
} }
func CleanupLinux() { func CleanupLinux() {
err := os.RemoveAll(ncutils.GetNetclientPath()) if err := os.RemoveAll(ncutils.GetNetclientPath()); err != nil {
if err != nil { ncutils.PrintLog("Removing netclient configs: "+err.Error(), 1)
}
if err := os.Remove("/usr/sbin/netclient"); err != nil {
ncutils.PrintLog("Removing netclient binary: "+err.Error(), 1) ncutils.PrintLog("Removing netclient binary: "+err.Error(), 1)
} }
} }