123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package service
- import (
- "github.com/IceWhaleTech/CasaOS-Common/utils/port"
- "github.com/IceWhaleTech/CasaOS-Common/utils/systemctl"
- )
- type HealthService interface {
- Services() (map[bool]*[]string, error)
- Ports() ([]int, []int, error)
- }
- type service struct{}
- func (s *service) Services() (map[bool]*[]string, error) {
- services, err := systemctl.ListServices("casaos*")
- if err != nil {
- return nil, err
- }
- var running, notRunning []string
- for _, service := range services {
- if service.Running {
- running = append(running, service.Name)
- } else {
- notRunning = append(notRunning, service.Name)
- }
- }
- result := map[bool]*[]string{
- true: &running,
- false: ¬Running,
- }
- return result, nil
- }
- func (s *service) Ports() ([]int, []int, error) {
- return port.ListPortsInUse()
- }
- func NewHealthService() HealthService {
- return &service{}
- }
|