Docker Compose запущен через подпроцесс Python. Popen все еще отвечает на CTRL-C, хотя я переопределил обработчик сигналPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Docker Compose запущен через подпроцесс Python. Popen все еще отвечает на CTRL-C, хотя я переопределил обработчик сигнал

Сообщение Anonymous »

Я пытаюсь запустить Docker Compose как подпроцесс в Python с помощью subprocess.Popen. Я переопределил обработчик сигнала для родительского скрипта и подпроцесса, но Compose по-прежнему отвечает на сочетание клавиш CTRL-C.

Код: Выделить всё

def pre_exec():
signal.signal(signal.SIGINT, signal.SIG_IGN)

try:
# block SIGINT in the parent script
signal.signal(signal.SIGINT, signal.SIG_IGN)
process = subprocess.Popen(['docker', 'compose', 'up'], env=env_vars, preexec_fn=pre_exec)
process.wait()
except subprocess.CalledProcessError as e:
print(f"An error occurred running Compose: {e}")
except KeyboardInterrupt:
pass
Я считаю, что этот код не должен ничего делать, если нажать CTRL-C, но когда я его запускаю, Compose все равно реагирует на CTRL-C и завершает работу.
Я могу сказать, что родительский скрипт правильно игнорирует его, потому что без начального обработчика сигнала скрипт выходит в оболочку, пока композиция завершает работу. Похоже, что подпроцесс составления каким-то образом игнорирует регистрацию обработчика сигнала.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Подпроцесс Python, вызов Popen блокируется
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Подпроцесс Python.Popen().communicate() зависает при чтении стандартного вывода
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Подпроцесс Python.Popen().communicate() зависает при чтении стандартного вывода [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Ошибка при установке ChatterBot: «Подпроцесс × pip для установки зависимостей сборки не был запущен успешно» на Python 3
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Добавить подпроцесс.Popen вывод в файл?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

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