Fix issue with systemd inactive status. (#243)

This commit is contained in:
Blake Rouse
2020-11-16 09:52:11 -05:00
committed by GitHub
parent a91b404a4f
commit 60dcbae4c5
+11 -1
View File
@@ -249,7 +249,17 @@ func (s *systemd) Status() (Status, error) {
case strings.HasPrefix(out, "active"):
return StatusRunning, nil
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"):
return StatusRunning, nil
case strings.HasPrefix(out, "failed"):