|
|
@@ -312,6 +312,7 @@ var services = []struct {
|
|
|
{"yfkj-app-install.service", "/opt/yfkj/app-install.service", "app-install"},
|
|
|
{"yfkj-web-ui.service", "/opt/yfkj/web-ui.service", "web-ui"},
|
|
|
{"yfkj-upgrade.service", "/opt/yfkj/upgrade.service", "upgrade"},
|
|
|
+ {"yfkj-local-startup.service", "/opt/yfkj/local-startup.service", "startup.sh"},
|
|
|
}
|
|
|
|
|
|
func serviceStatusHandler(w http.ResponseWriter, r *http.Request) {
|
|
|
@@ -324,11 +325,17 @@ func serviceStatusHandler(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
for i, s := range services {
|
|
|
n := i + 1
|
|
|
-
|
|
|
status := noValue
|
|
|
- if out, err := exec.Command("systemctl", "is-active", s.name).Output(); err == nil &&
|
|
|
- strings.TrimSpace(string(out)) == "active" {
|
|
|
- status = "🟢运行中..."
|
|
|
+
|
|
|
+ if out, err := exec.Command("systemctl", "show", s.name,
|
|
|
+ "-p", "ActiveState", "-p", "SubState").Output(); err == nil {
|
|
|
+ v := string(out)
|
|
|
+ switch {
|
|
|
+ case strings.Contains(v, "ActiveState=active") && strings.Contains(v, "SubState=running"):
|
|
|
+ status = "🟢运行中"
|
|
|
+ case strings.Contains(v, "ActiveState=active") && strings.Contains(v, "SubState=exited"):
|
|
|
+ status = "🔵已完成"
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
data[fmt.Sprintf("var%d", n)] = status
|