Modify 'ectl sv status'
This commit is contained in:
parent
ce34b7b21a
commit
4b37214113
@ -2,7 +2,4 @@ module ectl
|
||||
|
||||
go 1.23.4
|
||||
|
||||
require (
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
rsc.io/getopt v0.0.0-20170811000552-20be20937449 // indirect
|
||||
)
|
||||
require gopkg.in/yaml.v3 v3.0.1
|
||||
|
@ -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/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
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)
|
||||
}
|
||||
|
||||
var state uint64
|
||||
bytes, err := os.ReadFile(path.Join(runstatedir, "esvm", flag.Args()[2], "state"))
|
||||
if err != nil {
|
||||
state = 0
|
||||
}
|
||||
state, err = strconv.ParseUint(string(bytes), 10, 8)
|
||||
state := getServiceState(flag.Args()[2])
|
||||
enabled := strconv.FormatBool(isServiceEnabled(flag.Args()[2]))
|
||||
enabled = strings.ToUpper(enabled[:1]) + strings.ToLower(enabled[1:])
|
||||
|
||||
fmt.Println("Service name: " + flag.Args()[2])
|
||||
switch state {
|
||||
case 0:
|
||||
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")
|
||||
}
|
||||
fmt.Printf(" State: %s\n", state)
|
||||
fmt.Printf(" Enabled: %s\n", enabled)
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -254,6 +241,53 @@ func main() {
|
||||
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() {
|
||||
fmt.Println("Available sucommands:")
|
||||
fmt.Println("ectl version | Show enit version")
|
||||
|
Loading…
x
Reference in New Issue
Block a user