要监控一个程序是否启动,并在启动后关闭该程序,可以使用Python的subprocess模块来实现。
下面是一个示例代码:
import subprocess import time def check_and_close_program(program_name): process = subprocess.Popen(["pgrep", program_name], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() if process.returncode == 0: print(f"{program_name} is running, closing it...") subprocess.call(["pkill", program_name]) else: print(f"{program_name} is not running") # 要监控的程序名称 program_name = "example_program" while True: check_and_close_program(program_name) time.sleep(1) # 每隔1秒检查一次
在上面的代码中,首先定义了一个check_and_close_program
函数,该函数通过调用pgrep
命令来检查程序是否正在运行。如果程序正在运行,就调用pkill
命令来关闭该程序。
然后,在主循环中,不断调用check_and_close_program
函数来监控程序是否启动,并在启动后关闭该程序。通过使用time.sleep(1)
来控制每次检查的间隔时间。
你需要将代码中的example_program
替换为你要监控的程序的名称。
还可以使用Python的psutil模块来实现。
下面是一个示例代码:
import psutil import time def kill_process(process_name): proc_dict = {} for proc in psutil.process_iter(): proc_dict[proc.name()] = proc if proc_dict.get(process_name): proc_dict.get(process_name).kill() print(f"进程 {process_name} 已被强制关闭") else: print(f"进程 {process_name} 未启动") # 调用函数关闭指定进程 process_name = "shang.exe" # 替换为你要关闭的进程的名称 while True: kill_process(process_name) time.sleep(1) # 每隔1秒检查一次
标签:name,启动,python,程序,subprocess,process,program,proc From: https://www.cnblogs.com/shangwei/p/17623693.html