Из моего понимания, рабочие места трубопроводы начали с определенной оболочкой , и вы можете управлять этими заданиями ( fg
, bg
, Ctrl-Z) внутри этой оболочки. Задание может состоять из нескольких процессов / команд.
Мой вопрос: что происходит с этими заданиями, когда выходит оригинал, содержащий оболочку? Предположим, что huponexit не установлен, поэтому фоновые процессы продолжают работать после выхода из оболочки.
Предположим, я сделал:
$ run.sh | grep 'abc' &
[1] job_id
Затем я выхожу из этой оболочки. Я зайду в новую оболочку и побежу jobs
и ничего не увижу явно Но я могу ps aux | grep run.sh
увидеть и запустить этот процесс, а также ps aux | grep grep
посмотреть и grep 'abc'
запустить процесс .
Есть ли способ просто получить идентификатор задания для всего конвейера, чтобы я мог убить его за один раз, или мне нужно убить все процессы отдельно от другой оболочки, как только я выйду из исходной оболочки? (Я попробовал последнее, и это работает, но кажется, что хлопотно следить за всеми процессами.)