mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/1Panel-dev/1Panel.git
synced 2026-09-20 08:03:55 +08:00
refactor: update agent and core utilities (#12621)
This commit is contained in:
committed by
zhengkunwang223
parent
84a27de792
commit
d55982bde0
@@ -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...)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user