我正在尝试制作一个在启动时运行并控制其他脚本的脚本管理器 它控制脚本的方式是从配置文件中获取一个字典,其中包含一个进程的名称和一个脚本的路径,如果该进程正在运行,该脚本将运行,例如: 如果 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")
到目前为止,我已经设法让程序识别程序是否正在运行,我可以添加一行来运行它,但我找不到使用它的路径关闭它的方法