A razão pela qual o operador de pipe |
não funciona é porque o operador de pipe espera outro comando. O operador de redirecionamento de saída >
retorna para um arquivo e um canal nomeado é um arquivo no sentido geral, mas não um arquivo regular.
A saída para um pipe está normalmente em buffer, você pode liberar o fluxo de saída ou pode alterar o buffer do stdout.
No seu caso, a solução mais elegante seria abrir o pipe nomeado em Python, escrever a string ("answer" ou "bye") e depois fechar o arquivo / pipe. Dessa forma, você desvinculou o processo do servidor e o cliente Python. Você pode até reiniciar o processo do servidor ( twinkle -c
) e manter o processo do Python em execução.