gpt4 book ai didi

python - 如何知道服务是否已安装

转载 作者:行者123 更新时间:2023-11-30 22:53:07 25 4
gpt4 key购买 nike

我正在寻找一种方法来检查 Python 脚本是否安装了服务。例如,如果我想在命令行中检查已安装/正在运行/已关闭的 SSH 服务器,我使用:

service sshd status

如果未安装该服务,我会收到如下消息:

sshd.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)

因此,我使用子进程 check_output 来获取这三行,但 python 脚本无法正常工作。我使用 shell=True 来获取输出,但它不起作用。这是查找是否安装了服务或是否存在另一种方法且效率更高的正确解决方案?

这是我的 python 脚本:

import subprocess
from shlex import split

output = subprocess.check_output(split("service sshd status"), shell=True)

if "Loaded: not-found" in output:
print "SSH server not installed"

此代码的问题是 subprocess.CalledProcessError: Command returned non-zero exit status 1。我知道这是当命令行返回不存在的内容时,但我需要结果,因为我在 shell 中编写命令

最佳答案

选择一些不同的systemctl调用,该调用对于现有和不存在的服务是不同的。例如

systemctl cat sshd

如果服务存在,则返回退出代码 0,如果不存在,则返回 1。而且应该很容易检查,不是吗?

关于python - 如何知道服务是否已安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38313859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com