Modify 'ectl sv status'
This commit is contained in:
parent
ce34b7b21a
commit
4b37214113
@ -2,7 +2,4 @@ module ectl
|
|||||||
|
|
||||||
go 1.23.4
|
go 1.23.4
|
||||||
|
|
||||||
require (
|
require gopkg.in/yaml.v3 v3.0.1
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
||||||
rsc.io/getopt v0.0.0-20170811000552-20be20937449 // indirect
|
|
||||||
)
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
rsc.io/getopt v0.0.0-20170811000552-20be20937449 h1:UukjJOsjQH0DIuyyrcod6CXHS6cdaMMuJmrt+SN1j4A=
|
|
||||||
rsc.io/getopt v0.0.0-20170811000552-20be20937449/go.mod h1:dhCdeqAxkyt5u3/sKRkUXuHaMXUu1Pt13GTQAM2xnig=
|
|
||||||
|
@ -226,26 +226,13 @@ func main() {
|
|||||||
log.Fatalf("Could not get service status! Error: %s\n", err)
|
log.Fatalf("Could not get service status! Error: %s\n", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var state uint64
|
state := getServiceState(flag.Args()[2])
|
||||||
bytes, err := os.ReadFile(path.Join(runstatedir, "esvm", flag.Args()[2], "state"))
|
enabled := strconv.FormatBool(isServiceEnabled(flag.Args()[2]))
|
||||||
if err != nil {
|
enabled = strings.ToUpper(enabled[:1]) + strings.ToLower(enabled[1:])
|
||||||
state = 0
|
|
||||||
}
|
|
||||||
state, err = strconv.ParseUint(string(bytes), 10, 8)
|
|
||||||
|
|
||||||
fmt.Println("Service name: " + flag.Args()[2])
|
fmt.Println("Service name: " + flag.Args()[2])
|
||||||
switch state {
|
fmt.Printf(" State: %s\n", state)
|
||||||
case 0:
|
fmt.Printf(" Enabled: %s\n", enabled)
|
||||||
fmt.Println("Service state: Unknown")
|
|
||||||
case 1:
|
|
||||||
fmt.Println("Service state: Unloaded")
|
|
||||||
case 2:
|
|
||||||
fmt.Println("Service state: Running")
|
|
||||||
case 3:
|
|
||||||
fmt.Println("Service state: Stopped")
|
|
||||||
case 4:
|
|
||||||
fmt.Println("Service state: Crashed")
|
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -254,6 +241,53 @@ func main() {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getServiceState(serviceName string) string {
|
||||||
|
if _, err := os.Stat(path.Join(runstatedir, "esvm", serviceName)); err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
var state uint64
|
||||||
|
bytes, err := os.ReadFile(path.Join(runstatedir, "esvm", serviceName, "state"))
|
||||||
|
if err != nil {
|
||||||
|
state = 0
|
||||||
|
}
|
||||||
|
state, err = strconv.ParseUint(string(bytes), 10, 8)
|
||||||
|
|
||||||
|
switch state {
|
||||||
|
case 1:
|
||||||
|
return "Unloaded"
|
||||||
|
case 2:
|
||||||
|
return "Running"
|
||||||
|
case 3:
|
||||||
|
return "Stopped"
|
||||||
|
case 4:
|
||||||
|
return "Crashed"
|
||||||
|
case 5:
|
||||||
|
return "Completed"
|
||||||
|
default:
|
||||||
|
return "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func isServiceEnabled(serviceName string) bool {
|
||||||
|
if _, err := os.Stat(path.Join(sysconfdir, "esvm/enabled_services")); err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
file, err := os.ReadFile(path.Join(sysconfdir, "esvm/enabled_services"))
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, line := range strings.Split(string(file), "\n") {
|
||||||
|
if strings.TrimSpace(line) == serviceName {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func printUsage() {
|
func printUsage() {
|
||||||
fmt.Println("Available sucommands:")
|
fmt.Println("Available sucommands:")
|
||||||
fmt.Println("ectl version | Show enit version")
|
fmt.Println("ectl version | Show enit version")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user