如何使用 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模块的输出。
脚本没有运行