Имеется примерно такой скрипт
# Запуск специального конвеера команд в фоне.
first-program | second-program | third-program &
PID_VAR=$!
# Здесь идёт некий код ...
# TODO. Здесь через некоторое время нужно завершить процессы из конвеера.
kill -s 15 ${PID_VAR}
first-program, second-program реагируют лишь на SIGTERM, SIGKILL.
Если этот конвеер перенести в отдельный баш скрипт. И запустить его в фоне.
ncat -l -k 127.0.0.1 20000 | ./read_and_print.sh | ncat -l -k 127.0.0.1 20010
Как узнать PID-ы процессов first-program, second-program ? Нужно корректно завершить этот конвеер через SIGTERM-ы.