mirror of
https://github.com/EnumeratedDev/enit.git
synced 2026-09-16 02:26:11 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49541f6f76
|
||
|
|
fc738e6f4e
|
||
|
|
87ea28bfa3
|
@@ -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()
|
||||
|
||||
@@ -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
|
||||
if pid != 0 {
|
||||
syscall.Kill(-pid, syscall.SIGKILL)
|
||||
}
|
||||
|
||||
if service.Type == "simple" && err == nil {
|
||||
service.restartCount = 0
|
||||
|
||||
Reference in New Issue
Block a user