Fix issue with systemd inactive status. (#243)
This commit is contained in:
@@ -249,7 +249,17 @@ func (s *systemd) Status() (Status, error) {
|
|||||||
case strings.HasPrefix(out, "active"):
|
case strings.HasPrefix(out, "active"):
|
||||||
return StatusRunning, nil
|
return StatusRunning, nil
|
||||||
case strings.HasPrefix(out, "inactive"):
|
case strings.HasPrefix(out, "inactive"):
|
||||||
return StatusStopped, nil
|
// inactive can also mean its not installed, check unit files
|
||||||
|
exitCode, out, err := runWithOutput("systemctl", "list-unit-files", "-t", "service", s.Name)
|
||||||
|
if exitCode == 0 && err != nil {
|
||||||
|
return StatusUnknown, err
|
||||||
|
}
|
||||||
|
if strings.Contains(out, s.Name) {
|
||||||
|
// unit file exists, installed but not running
|
||||||
|
return StatusStopped, nil
|
||||||
|
}
|
||||||
|
// no unit file
|
||||||
|
return StatusUnknown, ErrNotInstalled
|
||||||
case strings.HasPrefix(out, "activating"):
|
case strings.HasPrefix(out, "activating"):
|
||||||
return StatusRunning, nil
|
return StatusRunning, nil
|
||||||
case strings.HasPrefix(out, "failed"):
|
case strings.HasPrefix(out, "failed"):
|
||||||
|
|||||||
Reference in New Issue
Block a user