уничтожьте подпроцесс, когда процесс Python будет уничтожен?

Из действительно очень хорошего блога на PostgreSQL, но этой темы применимо в целом:

Удобные в сопровождении запросы - моя точка зрения (depesz.com)

... Я решил что мои приоритеты для записи удобных в сопровождении запросов:

  1. Избегают бесполезного ввода.

  2. Использование искажает для таблиц/представлений. Всегда. И сделайте их разумными псевдонимами.

  3. Форматируют код в некотором роде.

  4. Избегают цитат (да, это - то, почему я ненавижу Django)

  5. синтаксис соединения Использования

, я действительно соглашаюсь с капитализацией зарезервированных слов и любого идентификатора, кроме моего собственного.

6
задан 21 October 2009 в 21:47
поделиться

2 ответа

В Windows нет сигналов, поэтому вы не можете использовать модуль сигналов. Однако вы все равно можете перехватить исключение KeyboardInterrupt при нажатии Ctrl-C.

Что-то вроде этого должно вас подтолкнуть:

import subprocess

try:
    child = subprocess.Popen(blah)
    child.wait() 

except KeyboardInterrupt:
    child.terminate()
5
ответ дан 17 December 2019 в 04:48
поделиться

Объекты subprocess.Popen поставляются с методом kill и terminate (отличается от того, какой сигнал вы отправляете процессу).

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

0
ответ дан 17 December 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: