Поэтому я пытаюсь выполнить команду Linux специально через subprocess.popen()
. Я хочу подождать только 30 секунд для выполнения этой команды, потому что в определенных сценариях моя команда зависает, а программа ожидает навсегда.
Ниже приведены два подхода, которые я использовал.
Подход 1
cmd = "google-chrome --headless --timeout=30000 --ignore-certificate-errors --print-to-pdf out.pdf https://www.google.com/
process = subprocess.call(cmd, shell=True)
process.wait() # Here I want to wait only till 30 secs and not untill process completes
Подход 2
from multiprocessing import Process
p1 = Process(target=subprocess.call, args=(cmd,))
processTimeout = 50
p1.start()
p1.join(processTimeout)
if p1.is_alive():
p1.terminate()
Во 2-м подходе файл даже не создается. Пожалуйста, предложите вариант.