Запишите PID подкоманды в сценарии для использования для завершения этой подкоманды при выходе с помощью Ctrl-C.Linux

Ответить Пред. темаСлед. тема
Anonymous
 Запишите PID подкоманды в сценарии для использования для завершения этой подкоманды при выходе с помощью Ctrl-C.

Сообщение Anonymous »

Я пытаюсь создать скрипт в качестве помощника для выполнения сложной (почти) оболочки вокруг того, что в конечном итоге является просто тестом npm:

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

unbuffer npm test 2>&1 | tee >(sed -r "s/\x1B\[[0-9;]*[a-zA-Z]//g" > ./tmp/output.log)
Допустим, мой скрипт содержит только следующее:

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

#!/bin/bash
npm test
Я могу запустить этот скрипт из командной строки и выйти из него с помощью Ctrl-C, и я могу быть уверен, что тест npm уничтожен а также базовый процесс узла, порожденный из npm test.
Но когда npm test скрыт внутри упомянутой выше оболочки, это не работает:

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

#!/bin/bash
unbuffer npm test 2>&1 | tee >(sed -r "s/\x1B\[[0-9;]*[a-zA-Z]//g" > ./tmp/output.log)
Когда я выхожу из этого сценария с помощью Ctrl-C, у меня остается процесс узла, работающий в фоновом режиме, и это не позволяет мне снова запустить сценарий (поскольку этот процесс узла удерживает необходимый порт).
Я пробовал использовать такие вещи, как PID=$!, чтобы захватить PID фонового процесса и убить его с помощью ловушки ' убить $PID' SIGINT при выходе из сценария, но в моем В этом случае это просто фиксирует PID команды tee, а не npm test. Таким образом, у меня все еще остается процесс потерянного узла, работающий в фоновом режиме.
Как мне выполнить правильную очистку после запуска нужной команды в сценарии bash?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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