core.systemd

core.systemd 提供了和 systemd 有关的接口

all(raw=False) -> Dict[key = str, value = SystemdServiceInfo]

core.systemd.all() 会返回当前系统中运行的(由 ambot-service 管理的)全部服务信息。输出是一个 dict,字典的 key 为 service name,value 为这个 service 的详细信息(SystemdServiceInfo 类型)

all 可以接受一个 raw 参数(默认为 False),如果 raw=True 将返回在 systemd 中和这一 service 有关的所有 property,如果 raw=False(默认)则返回的 SystemdServiceInfo 对象中的 properties 字段会为空字典

SystemdServiceInfo

name: str

服务名称

is_enable: bool

服务状态是否 enable(受限于 systemd 的实现,这个值并不一定准,请不要依赖这个属性来做核心逻辑)

state: ENUM{"unknown" | "running" | "stopped" | "stopping" | "starting" | "failed"}

  • starting 正在启动
  • running 正在运行
  • stopping 正在停止
  • stopped 已经停止
  • failed 失败
  • unknown 未知

is_running: bool

服务是否在运行中,即上面的 state 是否为 running

is_started: bool

服务是否已经启动,即上面的 stagte 是否为 startingrunning

active_time: time.Datetime

服务最近一次的启动时间

inactive_time: time.Datetime

服务最近一次的停止时间

need_daemon_reload: bool

在服务已经启动后是否修改了服务的配置文件且并未执行过 ambot-service daemon-reload

properties: Dict[str, any]

服务的 properties 信息,key 为 property 名称,value 类型与 key 相关(如使用请自行测试)