- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果 systemd 服务单元处于故障状态,systemctl status 会显示这一事实:
# systemctl status myservice
● myservice.service - Important Crash Prone service (myservice)
Loaded: loaded (/etc/systemd/system/myservice.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Tue 2017-08-22 20:04:13 UTC; 3s ago
Process: 31108 ExecStart=/bin/myservice (code=dumped, signal=ABRT)
Main PID: 31108 (code=dumped, signal=ABRT)
我想让一个 Python 程序获取“Result: start-limit”字段,而无需 fork systemctl
并尝试解析输出。其他字段(例如 Loaded、Active)可从 Python dbus 库获取。
例如,以下代码获取 ActiveState
属性,该属性由 systemctl
在“Active:”(上面输出中的单词“failed”)之后显示。
from dbus import Interface, SystemBus, SessionBus
bus = SystemBus()
systemd = bus.get_object('org.freedesktop.systemd1',
'/org/freedesktop/systemd1')
manager = Interface(systemd, dbus_interface='org.freedesktop.systemd1.Manager')
myservice_unit = manager.LoadUnit('myservice.service')
myservice_proxy = bus.get_object('org.freedesktop.systemd1', str(myservice_unit))
myservice = Interface(myservice_proxy,
dbus_interface='org.freedesktop.systemd1.Unit')
prop = 'ActiveState'
value = myservice_proxy.Get('org.freedesktop.systemd1.Unit',
prop,
dbus_interface='org.freedesktop.DBus.Properties')
print("{} is: {}".format(prop, value))
看起来“Result”值并不是像其他许多输出那样的属性。
最佳答案
如果您查看https://www.freedesktop.org/wiki/Software/systemd/dbus/处的文档,它解释了Result
是服务单元对象(org.freedesktop.systemd1.Service
)的一部分。
所以,我将其添加到您的代码中:
if value == 'failed':
result_prop = 'Result'
result = myservice_proxy.Get('org.freedesktop.systemd1.Service',
result_prop,
dbus_interface='org.freedesktop.DBus.Properties')
print(result)
现在它工作得很好!
关于python - 如何从 Python 获取失败服务的 systemctl 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45826461/
我想查看 systemctl 命令的输出。例如: systemctl restart systemd-networkd 将显示输出 systemctl status systemd-networkd
Dockerfile FROM centos:7 ENV container docker VOLUME ["/sys/fs/cgroup"] RUN yum -y update RUN yum in
我有两个服务 A 和 B,其中 A 依赖于 B,这意味着 A 需要 B 提供的服务,所以在 A 的服务单元中我将 After 和 Requires 设置为 B After=B.service Requ
http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic.html#INISCRPTACT 根据这
我有一个运行 Ubuntu 16.04.1x64 的 DO droplet,我正在尝试运行 IPFS作为系统服务。我已经按照说明创建了一个用户“connor”并安装了 IPFS here .我将服务存
“systemctl start nginx”和systemctl start nginx.service有什么区别?我在不同的教程中看到它们。还有其他一些具有*.service。 我想知道它们是一样
我们正在尝试让 autossh 在 Ubuntu 16.04.2 的启动时连接到远程服务器。所以我们使用 systemctl 来完成这项工作。脚本如下: [Unit] Description=Keep
这是我的配置文件: [Service] LimitNOFILE=65535 LimitNPROC=65535 TasksMax=infinity Type=forking PIDFile=/data/
我有一个配置 jenkins 的 ansible playbook,这个 playbook 作为 cloud-init-script 的一部分运行。 但是在 Jenkins 重启期间它失败了。谁能告诉
我正在尝试使用 systemctl 配置 Tomcat 8.5.37 以在 Ubuntu 16.04 上将服务器作为守护进程启动。 为此,我在/etc/systemd/system/tomcat8.s
我会在我的 CentOS 服务器中禁用 Ctrl-Alt-Delete,所以我尝试了: systemctl mask ctrl-alt-delete.target 但是我得到了: Failed to
我有我的 bash 脚本,我将我的服务设置为在其上运行 ExecStart - 现在我的 bash 脚本直接通过用户“staytus”运行,按预期启动和停止事情,但由于某种原因,当我通过它运行它时我还
我试图让这个变量工作,但我总是遇到关于 systemd-escape 的错误。虽然我转义了特殊字符,但变量不起作用: status="systemctl status syslog-ng | grep
我有自动运行服务的问题。我想在用户登录后运行一个脚本。一旦我成功了,但是当我尝试将其自动化时,我会遇到错误并且找不到错误。 服务: Description=Service desc [Service]
我试图用systemctl命令构建一个CentOS镜像。但是每次我构建时都使用。我收到此错误: Step 5/7 : RUN systemctl enable syslog-ng ; systemct
我有一个简单的 bash 脚本,它调用 github 上的 git 存储库(/home/user/simple_git.sh): #!/bin/bash # Change to the Git rep
我刚刚开始查看 coreos 我尝试设置 redis 和 mysql docker 实例,但收效甚微。 我最初期望一切都可以开箱即用,但事实似乎并非如此。 基于此documentation on sy
我正在尝试使用以下指南在我的 Amazon EC2 实例 (ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20170414) 上设置 H
我想在 Amazon 云 VM 中将 elasticsearch 作为 systemd 服务运行。 If I run it simply through command line shell它将在子
我正在使用 systemctl 使用命令 systemctl show 从 ssh.service 单元文件中获取 EnvironmentFile 属性的值ssh.service -p Environ
我是一名优秀的程序员,十分优秀!