如何使用 Python 检查 Linux 中是否正在运行任何脚本?

pythonserver side programmingprogramming更新于 2024/1/5 1:19:00

Python 中的 psutil 模块可帮助我们检索有关当前在本地系统中运行的进程的信息。

什么是脚本?

AScript 是一组用编程语言编写并在计算机中执行的指令。我们可以在更短的时间内执行各种从简单到复杂的重复任务。在 Linux 中,脚本通常通过命令行使用 Bash 或 python 等 shell 解释器执行。还可以使用 cron 或 systemd 安排这些脚本在特定时间运行。

安装 psutil 模块

要使用 psutil 模块,首先我们必须检查模块是否已安装。如果没有,我们必须使用以下代码进行安装。

pip install psutil

示例

在下面的示例中,我们将脚本(文件名)传递给用户定义函数 is_process_running()。如果脚本当前正在运行,则此函数返回 true。如果没有,则返回 false。

import psutil
def is_process_running(name):
    for process in psutil.process_iter(['name']):
        if process.info['name'] == name:
            return True
    return False
if is_process_running('script.py'):
    print('脚本正在运行。')
else:
    print('脚本未运行。')

输出

脚本未运行。

安装 Sub process.run 模块

我们还有一种方法可以检查脚本是否在 Linux 中运行;使用 sub process.run 模块。但首先,我们必须在 python 环境中安装 sub process.run 模块。

pip install subprocess.run

示例

在此示例中,我们将使用 sub process 模块检查脚本是否在 Linux 中运行。我们将在命令行中执行以下代码。

import subprocess
script_name = "sample.py"
ps_output = subprocess.check_output(["ps", "-ef"])
ps_lines = ps_output.decode("utf-8").split("\n")
for line in ps_lines:
    if script_name in line:
        print("脚本正在运行")
        break
else:
    print("脚本未运行")

输出

以下是 subprocess 的输出,用于检查进程是否正在运行。

脚本未运行

示例

让我们看另一个示例,使用 sub process 模块在 Linux 中检查 php 脚本是否正在运行。

import subprocess
script_name = "sample.php"
ps_output = subprocess.check_output(["ps", "-ef"])
ps_lines = ps_output.decode("utf-8").split("\n")
for line in ps_lines:
    if script_name in line:
        print("脚本正在运行")
        break
else:
    print("脚本没有运行")

输出

下面是python语言的sub process模块​​的输出。

脚本没有运行

相关文章