refactor: update agent and core utilities (#12621)

This commit is contained in:
ssongliu
2026-04-28 11:17:30 +08:00
committed by zhengkunwang223
parent 84a27de792
commit d55982bde0
86 changed files with 1854 additions and 924 deletions

View File

@@ -2,7 +2,6 @@ package manager
import (
"errors"
"strings"
"time"
"github.com/1Panel-dev/1Panel/agent/utils/cmd"
@@ -19,5 +18,5 @@ func handlerErr(out string, err error) error {
}
func run(name string, args ...string) (string, error) {
return cmd.NewCommandMgr(cmd.WithTimeout(10*time.Second)).RunWithStdoutBashCf("LANGUAGE=en_US:en %s %s", name, strings.Join(args, " "))
return cmd.NewCommandMgr(cmd.WithTimeout(10*time.Second), cmd.WithEnv("LANGUAGE=en_US:en")).RunWithStdout(name, args...)
}

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"os"
"path/filepath"
"strings"
"github.com/1Panel-dev/1Panel/agent/utils/cmd"
)
@@ -18,18 +19,11 @@ func (s *Openrc) Name() string {
return "openrc"
}
func (s *Openrc) IsActive(serviceName string) (bool, error) {
out, err := cmd.RunDefaultWithStdoutBashCf("if service %s status >/dev/null 2>&1; then echo 'active'; else echo 'inactive'; fi", serviceName)
if err != nil {
return false, err
}
return out == "active\n", nil
_, err := cmd.NewCommandMgr().RunWithStdout("service", serviceName, "status")
return err == nil, nil
}
func (s *Openrc) IsEnable(serviceName string) (bool, error) {
out, err := cmd.RunDefaultWithStdoutBashCf("if ls /etc/rc*.d/S*%s >/dev/null 2>&1; then echo 'enabled'; else echo 'disabled'; fi", serviceName)
if err != nil {
return false, err
}
return out == "enabled\n", nil
return isSysvServiceEnabled(serviceName)
}
func (s *Openrc) IsExist(serviceName string) (bool, error) {
_, err := os.Stat(filepath.Join("/etc/init.d", serviceName))
@@ -59,3 +53,27 @@ func (s *Openrc) Operate(operate, serviceName string) error {
func (s *Openrc) Reload() error {
return nil
}
func isSysvServiceEnabled(serviceName string) (bool, error) {
entries, err := os.ReadDir("/etc")
if err != nil {
return false, err
}
for _, entry := range entries {
name := entry.Name()
if !entry.IsDir() || !strings.HasPrefix(name, "rc") || !strings.HasSuffix(name, ".d") {
continue
}
items, err := os.ReadDir(filepath.Join("/etc", name))
if err != nil {
continue
}
for _, item := range items {
itemName := item.Name()
if strings.HasPrefix(itemName, "S") && strings.HasSuffix(itemName, serviceName) {
return true, nil
}
}
}
return false, nil
}

View File

@@ -18,18 +18,11 @@ func (s *Sysvinit) Name() string {
return "sysvinit"
}
func (s *Sysvinit) IsActive(serviceName string) (bool, error) {
out, err := cmd.RunDefaultWithStdoutBashCf("if service %s status >/dev/null 2>&1; then echo 'active'; else echo 'inactive'; fi", serviceName)
if err != nil {
return false, err
}
return out == "active\n", nil
_, err := cmd.NewCommandMgr().RunWithStdout("service", serviceName, "status")
return err == nil, nil
}
func (s *Sysvinit) IsEnable(serviceName string) (bool, error) {
out, err := cmd.RunDefaultWithStdoutBashCf("if ls /etc/rc*.d/S*%s >/dev/null 2>&1; then echo 'enabled'; else echo 'disabled'; fi", serviceName)
if err != nil {
return false, err
}
return out == "enabled\n", nil
return isSysvServiceEnabled(serviceName)
}
func (s *Sysvinit) IsExist(serviceName string) (bool, error) {
_, err := os.Stat(filepath.Join("/etc/init.d", serviceName))