Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'web/service/server.go')
-rw-r--r--web/service/server.go47
1 files changed, 36 insertions, 11 deletions
diff --git a/web/service/server.go b/web/service/server.go
index 6737bef2..5e6065b5 100644
--- a/web/service/server.go
+++ b/web/service/server.go
@@ -9,7 +9,9 @@ import (
"io/fs"
"net/http"
"os"
+ "os/exec"
"runtime"
+ "strings"
"time"
"x-ui/logger"
"x-ui/util/sys"
@@ -200,24 +202,24 @@ func (s *ServerService) GetXrayVersions() ([]string, error) {
func (s *ServerService) StopXrayService() (string error) {
- err := s.xrayService.StopXray()
- if err != nil {
- logger.Error("stop xray failed:", err)
- return err
- }
+ err := s.xrayService.StopXray()
+ if err != nil {
+ logger.Error("stop xray failed:", err)
+ return err
+ }
return nil
}
func (s *ServerService) RestartXrayService() (string error) {
- s.xrayService.StopXray()
- defer func() {
- err := s.xrayService.RestartXray(true)
- if err != nil {
- logger.Error("start xray failed:", err)
+ s.xrayService.StopXray()
+ defer func() {
+ err := s.xrayService.RestartXray(true)
+ if err != nil {
+ logger.Error("start xray failed:", err)
}
- }()
+ }()
return nil
}
@@ -324,3 +326,26 @@ func (s *ServerService) UpdateXray(version string) error {
return nil
}
+
+func (s *ServerService) GetLogs() ([]string, error) {
+ // Define the journalctl command and its arguments
+ var cmdArgs []string
+ if runtime.GOOS == "linux" {
+ cmdArgs = []string{"journalctl", "-u", "x-ui", "--no-pager", "-n", "100"}
+ } else {
+ return []string{"Unsupported operating system"}, nil
+ }
+
+ // Run the command
+ cmd := exec.Command(cmdArgs[0], cmdArgs[1:]...)
+ var out bytes.Buffer
+ cmd.Stdout = &out
+ err := cmd.Run()
+ if err != nil {
+ return nil, err
+ }
+
+ lines := strings.Split(out.String(), "\n")
+
+ return lines, nil
+}