Ruby: правильный способ убить порожденный дочерний процесс [duplicate]

Или на самом устройстве вы можете перейти в Настройки -> Мобильные сети -> Предпочтительные типы сетей и выбрать самый медленный доступный ... Конечно, это очень ограниченно, но для некоторых целей тестирования этого может быть достаточно.

3
задан Piotr Pawlik 27 April 2015 в 08:27
поделиться

1 ответ

Проблема не в скрипте python - сигналы обрабатываются должным образом по умолчанию (без изменений после реализации модуля signal).

Проблема заключается в скрипте ruby. После убийства процесса его родительский сервер (сервер в этом случае) должен каким-то образом знать, что он был убит. Для этой цели существует функция wait. Из документации ruby:

Родительский процесс должен использовать Process.wait для сбора статуса завершения своего дочернего

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

def stop
    ...
    pid = @@pids[ object.id ]
    Process.kill( 15, pid )
    Process.wait( pid )
    ...
1
ответ дан Piotr Pawlik 16 August 2018 в 03:43
поделиться
Другие вопросы по тегам:

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