Use expect :
P | { expect -c 'expect -timeout -1 yikes' && killall P ; }
Esse uso pode não ser o ideal, mas expect é a ferramenta certa para o trabalho.
Se P imprimir mais depois de yikes , ele notará o canal quebrado, portanto, o killall não é necessário:
P | expect -c 'expect -timeout -1 yikes'