как мне убить этот скрипт bash? - PullRequest
1 голос
/ 14 сентября 2010

Я написал bash-скрипт A, который вызывает другой скрипт B, более 1000 раз в цикле.

Ctrl + C убивает только скрипт B, только одну итерацию. Скрипт A продолжает работать и снова вызывает скрипт B.

Можно ли что-то переписать в этих сценариях, чтобы Ctrl + C убил сценарий A?

Ответы [ 2 ]

4 голосов
/ 14 сентября 2010

вы можете перехватить свой сигнал убийства и делать все, что захотите (например, убить A вместо B).Смотрите здесь как.Если вы используете его в B, попробуйте убить его родителя ...

0 голосов
/ 14 сентября 2010

Правильно сделать так, чтобы оба сценария выполнялись в одной группе процессов . Тогда они оба получат сигнал SIGINT при нажатии Ctrl-C.

Из того, что вы говорите, по какой-то причине они попали в разные группы процессов. Это может произойти, если оболочка, которая выполняет сценарий A, считает, что она (оболочка) является интерактивной. Трудно сказать больше из вашего описания - не стесняйтесь вставить некоторый пример кода (и опишите, как вы запускаете сценарии), и мы посмотрим.

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