сценарий оболочки для порождения процессов завершите детей на SIGTERM

У меня была проблема, из-за которой свойство bottomLayoutGuide устанавливало бы себя на нулевую длину, а затем заставляло мои кнопки над панелью вкладок падать ниже на панель вкладок с автоматическим размещением.

Вы смотрели на это

[self.navigationController.view setNeedsLayout]

Я положил его в свой viewwillappear и перестал получать нулевую длину в свойстве bottomLayoutGuide. Может быть, это поможет вам и с вашей собственностью topLayoutGuide.

7
задан Martijn Courteaux 4 June 2010 в 14:59
поделиться

4 ответа

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

Окончательный сценарий выглядит так:

#!/bin/sh

sleep 600 &
PID1="$!"

sleep 600 &
PID2="$!"

trap "kill $PID1 $PID2" exit INT TERM

wait
5
ответ дан 6 December 2019 в 08:16
поделиться

Я подозреваю, что ваш / bin / sh не является Bash (хотя вы отметили вопрос как «Bash»).

Судя по сообщению, я предполагаю, что это DASH. Посмотрите его руководство или просто исправьте свой шебанг, если вам нужно написать код на Bash.

4
ответ дан 6 December 2019 в 08:16
поделиться

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

Как вы отправляете сигнал SIGTERM «главному процессу»? Возможно, вам следует выполнить kill -l , чтобы проверить, какие сигналы поддерживаются. Поскольку сообщение об ошибке предполагает, что вы отправляете сигнал «10», который, похоже, ваша система не распознает.

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

1
ответ дан 6 December 2019 в 08:16
поделиться

Это работает для меня:

trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT
  • Убить - - $$ отправляет SIGTERM на всю группу процессов, тем самым убивая также потомки.

  • Указательный сигнал EXIT полезен при использовании SET -E (более подробно здесь ).

12
ответ дан 6 December 2019 в 08:16
поделиться
Другие вопросы по тегам:

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