3 Commits
2 changed files with 24 additions and 10 deletions
+15 -9
View File
@@ -285,7 +285,7 @@ func showServiceStatus() {
} else {
fmt.Printf("Enabled: %t\n", serviceEnabled)
}
if serviceState == "running" {
if serviceState == "running" && processID > 0 {
fmt.Printf("Process ID: %d\n", processID)
}
}
@@ -319,12 +319,6 @@ func listAllServices() {
return
}
// Print json data if flag is set
if printJson {
fmt.Println(string(data))
return
}
// Decoode JSON data
var returnedJsonData map[string]any
err = json.Unmarshal(data, &returnedJsonData)
@@ -336,12 +330,24 @@ func listAllServices() {
log.Fatal(err)
}
// Set is_enabled and stage fields in json data
for _, serviceMap := range returnedJsonData["services"].([]any) {
serviceMap.(map[string]any)["is_enabled"], serviceMap.(map[string]any)["stage"] = isServiceEnabled(serviceMap.(map[string]any)["name"].(string))
}
// Print json data if flag is set
if printJson {
data, _ = json.Marshal(returnedJsonData)
fmt.Println(string(data))
return
}
for _, serviceMap := range returnedJsonData["services"].([]any) {
serviceName := serviceMap.(map[string]any)["name"].(string)
serviceDescription := serviceMap.(map[string]any)["description"].(string)
serviceState := serviceMap.(map[string]any)["state"].(string)
serviceEnabled := serviceMap.(map[string]any)["is_enabled"].(bool)
serviceStage := int(serviceMap.(map[string]any)["stage"].(float64))
serviceStage := int(serviceMap.(map[string]any)["stage"].(int))
processID := int(serviceMap.(map[string]any)["process_id"].(float64))
fmt.Printf("Name: %s\n", serviceName)
@@ -352,7 +358,7 @@ func listAllServices() {
} else {
fmt.Printf("Enabled: %t\n", serviceEnabled)
}
if serviceState == "running" {
if serviceState == "running" && processID > 0 {
fmt.Printf("Process ID: %d\n", processID)
}
fmt.Println()
+9 -1
View File
@@ -326,6 +326,12 @@ func (service *EnitService) StartService() (err error) {
service.state = EnitServiceRunning
// Set PID to 0 for simple services with a stop command
if service.Type == "simple" && service.StopCmd != "" {
pid = 0
service.processID = 0
}
go func() {
err := cmd.Wait()
@@ -339,7 +345,9 @@ func (service *EnitService) StartService() (err error) {
service.restartCount = 0
default:
// Kill remaining child processes
syscall.Kill(-pid, syscall.SIGKILL)
if pid != 0 {
syscall.Kill(-pid, syscall.SIGKILL)
}
if service.Type == "simple" && err == nil {
service.restartCount = 0