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 是否为 starting 或 running
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 相关(如使用请自行测试)