Как я могу убить детские процессы, порожденные процессом subprocess.popen ()?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу убить детские процессы, порожденные процессом subprocess.popen ()?

Сообщение Anonymous »

Я использую subprocess.popen создать новый дочерний процесс - в данном случае git clone .
Проблема в том, что клон Git только порождает подпроцессы, и когда я пытаюсь убить их, используя Popen.kill () .git clone) убивают, но не его дети.
Примером ребенка является:
79191 /usr/lib/git-core/git fetch-pack --stateless-rpc --stdin --lock-pack --include-tag --thin --cloning --depth=1 https://example.com/scm/adoha/adoha_dig ... ation.git/

Как я могу убить все процессы - git clone и его дети? # execute a child process using os.execvp()
p = subprocess.Popen(shlex.split(f'git clone --bare --depth=1 -v \'{url}\' \'{temp_dir}\''),
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
try:
ret_code = p.wait(timeout)
except subprocess.TimeoutExpired as exc:
p.kill()
shutil.rmtree(temp_dir)
raise common.exc.WatchdogException(f'Failed to clone repository: Timeout.'
f'\n{timeout=}\n{url=}') from exc


Подробнее здесь: https://stackoverflow.com/questions/641 ... en-process
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»