Рассмотрим следующий упрощенный пример:
my_prog|awk '...' > output.csv &
my_pid="$!" #Gives the PID for awk instead of for my_prog
sleep 10
kill $my_pid #my_prog still has data in its buffer that awk never saw. Data is lost!
В bash, $my_pid
указывает на PID для awk
. Однако мне нужен PID для my_prog
. Если я убей awk
, my_prog
не знает, чтобы очистить выходной буфер и данные потеряны. Итак, как получить PID для my_prog
? Обратите внимание, что ps aux|grep my_prog
не будет работать, так как может быть несколько my_prog
.
ПРИМЕЧАНИЕ: изменено cat
на awk '...'
, чтобы уточнить, что мне нужно.