убить дочерний процесс, который был создан сценарием оболочки, так что я буду выполнять следующие команды - PullRequest
0 голосов
/ 25 сентября 2019

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

Между сценариями есть команда, которая в идеале работает в течение бесконечного времени

tail -f

con, смотрите вывод, который регистрируется.

Обычно tail -f может быть завершен с помощью ctrl + z или Ctrl + c. В этом случае, когда я делаю это, он также выходит из моей оболочки, которая должна работать.

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

Есть ли способ выйти из хвостовой команды и не выйти из выполнения сценария оболочки.

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

1 Ответ

0 голосов
/ 25 сентября 2019

Мы можем использовать пользовательское прерывание в командной оболочке

, например, trap или onitr

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

, чтобы сделать это

Предположим, что вы хотите прервать с помощью Ctrl + C

trap "ваш сценарий / команда резюме" INT

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

...