Я создаю небольшой скрипт автоматизации для взаимодействия с игрой. Игра очень уязвима к сбоям, но непредсказуемо (от 30 минут до 3 часов, в зависимости от того, что происходит в игре). Из-за этого ниже я написал небольшой скрипт, который ИДЕАЛЬНО собирался убить программу, убить клиента мониторинга cra sh, который проверяет наличие сбоев и предлагает перезапустить, а затем перезапустить игру и возобновить. Проблема в том, что я никогда не доходил до subprocess.run ()
, он снова запускает игру, но не позволяет запустить какой-либо код после этого.
import psutil
import time
import subprocess
def main():
'''Process kill function'''
for proc in psutil.process_iter():
# check whether the process name matches
# print(proc.name())
if any(procstr in proc.name() for procstr in\
['GameName.exe']):
print(f'Killing {proc.name()}')
proc.kill()
time.sleep(5)
for proc in psutil.process_iter():
# check whether the process name matches
# print(proc.name())
if any(procstr in proc.name() for procstr in\
['GameCrashMonitor.exe']):
print(f'Killing {proc.name()}')
proc.kill()
time.sleep(10)
subprocess.run(r'PathToGame.exe')
print(time.time())
if __name__ == "__main__":
main()
Эта программа успешно попадает в subprocess.call, снова запускает игру, а затем python зависает. Я не могу контролировать c на i python, чтобы остановить его. Я использую Spyder, и он даже делает значок spyder на моей панели задач ошибочным и исчезает.