как убить дочерний процесс ожидания ввода, используя python Пул - PullRequest
0 голосов
/ 06 января 2020

Я использую python многопроцессорный пул для одновременного запуска некоторого сценария оболочки. Но иногда сценарий оболочки будет зависать при ожидании ввода. Как я могу определить состояние Wait for input и уничтожить дочерний процесс или ввести некоторые параметры? Пул, который я использовал следующим образом:

p = Pool(processNum)
    LogInfo('Parent process %s.' % os.getpid())
    #for incl_info in incl_infos:
        #res = p.apply_async(func, args=(incl_info,root,))
    multi_res = [p.apply_async(func, args=(incl_info,root,)) for incl_info in incl_infos]
    LogInfo('Waiting for all subprocesses done...')
    for i in range(len(incl_infos)):
        while not multi_res[i].ready():
            time.sleep(30)
    p.close()
    p.join()

Функция запуска процесса func будет зависать при ожидании ввода. Я хочу найти зависший дочерний процесс и убить их. Может ли кто-нибудь дать некоторые предложения? Большое спасибо.

...