скрипт такой:
exec &> >(tee -a ./test_tee.log)
ping $1
Когда скрипт запущен в bash 7603, строка exec создаст процесс с именем 13069, например:
root 13068 7603 0 17:15 pts/5 00:00:00 bash
root 13069 13068 0 17:15 pts/5 00:00:00 bash // where does it come from
root 13070 13068 0 17:15 pts/5 00:00:00 ping google.com
root 13071 13069 0 17:15 pts/5 00:00:00 tee -a ./test_tee.log
Я запускаю скрипт в pid 7603 bash, pid 13068 - это скрипт, почему там pid 13069
решение1
Дополнительный процесс — это подоболочка, выполняющая tee -a ./test_tee.log
. Подтвердите это с помощью pstree -p | grep -B 1 '[t]ee'
.
Вы можете указать этой подоболочкезаменятьсебя с tee
. Измените соответствующую строку на:
exec &> >(exec tee -a ./test_tee.log)