首页 > 解决方案 > 检查 apache 是否正在运行

问题描述

我想写一个函数,当 apache 运行时打印一切都很好,所以我决定计算正在使用 apache 的进程数,它是 8。所以我想打印 apache 有超过 2 个进程时正在运行. 所以 v 是 8 但还是不行,所以我决定转换成字符串,但还是没有解决问题。

你知道为什么它不工作吗?""""

import os
def checkApacheStatus():
    v = os.system("ps -ef| awk '{print $1}'|grep apache|wc -l")
    p = int(v)
    if p>2:
        print("apache is running")

"""" 检查ApacheStatus()

标签: pythonapache

解决方案


os.system不返回命令的输出。它只是返回成功代码,一个从 0 到 255 的数字。您需要使用子进程。

import subprocess
v = subprocess.Popen("ps -ef|awk '{print $1}'|grep apache|wc -l",stdout=subprocess.PIPE)
p = int(v.stdout.read())

请注意,“grep -c”可以直接为您提供找到的行数。


推荐阅读