Ophestra Umiker
65c02b540d
Manpage provided by systemd states that the sd_booted function internally "checks whether the directory /run/systemd/system/ exists", as well as that "a simple check like this can also be implemented trivially in shell or any other language". This implies the behaviour of this function can be expected to be stable. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
29 lines
486 B
Go
29 lines
486 B
Go
package main
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"io/fs"
|
|
"os"
|
|
)
|
|
|
|
const (
|
|
systemdCheckPath = "/run/systemd/system"
|
|
)
|
|
|
|
// https://www.freedesktop.org/software/systemd/man/sd_booted.html
|
|
func sdBooted() bool {
|
|
_, err := os.Stat(systemdCheckPath)
|
|
if err != nil {
|
|
if verbose {
|
|
if errors.Is(err, fs.ErrNotExist) {
|
|
fmt.Println("System not booted through systemd")
|
|
} else {
|
|
fmt.Println("Error accessing", systemdCheckPath+":", err.Error())
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
return true
|
|
}
|