1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package zdaemon
- import (
- "fmt"
- "git.swzry.com/zry/pathutils"
- "os"
- "path"
- "strconv"
- "text/template"
- )
- const tpl_initd_sysv = `#!/bin/sh
- # chkconfig: - {{.StartOrder}} {{.StopOrder}}
- # description: {{.Description}}
- # processname: {{.ExecPath}}
- # Provides: {{.ExecPath}}
- # Required-Start:
- # Required-Stop:
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: {{.Name}}
- # Description: {{.Description}}
- cmd={{ .ExecPath }}
- $cmd $1
- exit 0
- `
- func (zd *ZDaemon) install_sysv() {
- if zd.daemonConfig.InstallMode != "free" {
- fmt.Println("Failed install: already installed.")
- return
- }
- initsp := path.Join("/etc/init.d/", zd.daemonName)
- pe, _ := pathutils.PathExists(initsp)
- if pe {
- err := os.Remove(initsp)
- if err != nil {
- fmt.Println("Failed install, old file exist and error in deleting old file: ", err.Error())
- return
- }
- }
- otpl := template.New(zd.daemonName)
- tpl, err := otpl.Parse(tpl_initd_sysv)
- if err != nil {
- fmt.Println("Failed install: ", err.Error())
- return
- }
- fids, err := os.OpenFile(initsp, os.O_WRONLY|os.O_CREATE, 0777)
- if err != nil {
- fmt.Println("Failed install: ", err.Error())
- return
- }
- tdat := map[string]string{
- "StartOrder": strconv.Itoa(zd.startOrder),
- "StopOrder": strconv.Itoa(zd.stopOrder),
- "Description": zd.description,
- "ExecPath": zd.executableFileName,
- "Name": zd.daemonName,
- }
- err = tpl.Execute(fids, tdat)
- if err != nil {
- fmt.Println("Failed install: ", err.Error())
- _ = fids.Close()
- return
- }
- _ = fids.Close()
- zd.daemonConfig.InstallMode = "sysv"
- zd.writeStatus()
- fmt.Println("Installed.")
- }
- func (zd *ZDaemon) uninstall_sysv() {
- initsp := path.Join("/etc/init.d/", zd.daemonName)
- pe, _ := pathutils.PathExists(initsp)
- if pe {
- err := os.Remove(initsp)
- if err != nil {
- fmt.Println("Failed uninstall: ", err.Error())
- return
- }
- }
- zd.daemonConfig.InstallMode = "free"
- zd.writeStatus()
- fmt.Println("Uninstalled.")
- }
|