python 监控一个程序是否启动, 启动就关掉这个程序

要监控一个程序是否启动,并在启动后关闭该程序,可以使用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秒检查一次
复制代码

 

 
posted @   你的小可爱吖  阅读(437)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2020-08-11 Linux命令-scp 两个服务器之间传输文件和文件夹 (端口相同与不相同)
2020-08-11 supervisord 启动失败 Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示