从主脚本运行和关闭 python 脚本

问题描述 投票:0回答:0

我正在尝试制作一个在启动时运行并控制其他脚本的脚本管理器 它控制脚本的方式是从配置文件中获取一个字典,其中包含一个进程的名称和一个脚本的路径,如果该进程正在运行,该脚本将运行,例如: 如果 dict 是 {App : /Downloads/Script.py} 程序将每 5 秒检查一次以查看应用程序是否正在运行,如果是则它使用脚本中的路径运行脚本

请原谅我和我卑微的代码打扰你<3

这是我的代码:

# importing modules #

from configparser import ConfigParser
import subprocess as sp
import psutil
import time

# defining functions #

def CheckProcess(pname):
    return pname in (p.name() for p in psutil.process_iter())

def Changeini(option,choice):
    os.remove("config.ini")
    try:
        Config.set(section="Default",option=option,value=str(choice))
    except:
        Print("Could not change configuration")
    finally:
        with open("Config.ini","w") as f:
            Config.write(f)
            f.close()

def cfg(option):
    try:
        main = Config.get("Default",option)
        return main
    except:
        print("Could not open configuration")

# defining variables #


Config = ConfigParser()
Config.read(r"Config.ini")

Jobs = eval(cfg("Jobs"))
running_Jobs = {}

# runtime #

while True:
    time.sleep(5)
    for item in Jobs.items():
        if CheckProcess(item[0]):
            if running_Jobs.get(item[0]) is None:

                # run the process



                # add to running list

                running_Jobs[item[0]] = item [1]
                print(" [+] " + item[0] + " running")

    try:
        for item in running_Jobs.items():
            if not CheckProcess(item[0]):

                # close process

                # close list[1]

                # remove from running list

                running_Jobs.pop(item[0])
                print(" [-] " + item[0] + " Closed")
    except:
        print(" [*] No Jobs Running")

到目前为止,我已经设法让程序识别程序是否正在运行,我可以添加一行来运行它,但我找不到使用它的路径关闭它的方法

python automation subprocess
© www.soinside.com 2019 - 2024. All rights reserved.