Завершить подпроцесс выполнения при закрытии Python скрипта - PullRequest
0 голосов
/ 18 июня 2020

Я запускаю сценарий Python с моего NGINX сервера, который запускает эту команду

subprocess.call(["sh", "/runscript.sh", arg1, arg2, arg3], shell=False)

Проблема в том, что когда мой сервер прерывает выполнение скрипта, запущенный подпроцесс не может остановиться, просто беги вечно.

Это огромная проблема.

Уже пытался изменить shell = True / shell = False.

EDIT Я реализовал код внутри сценария sh внутри сценария python. Итак, теперь процесс запускается непосредственно из subprocess.call.

Есть способы сохранить PID процессов, запущенных из subprocess.call и завершить, когда задача не имеет ввода?

1 Ответ

0 голосов
/ 18 июня 2020

Сначала вы можете:

import os

os.system("tasklist > task.temp")
with open("task.temp", "r") as f:
    print(f.read())
task = input("Enter process: ")
os.system("taskkill /f /im "+task)

После того, как вы узнаете, какое имя задачи принадлежит runscript.sh, вы можете заменить его на:

import os

os.system("taskkill /f /im "+task) 

Где task - это имя процесса, который вы хотите завершить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...