Quando tee
terminar, o comando que o alimenta continuará sendo executado, até tentar gravar mais resultados. Então, ele obterá um SIGPIPE (13 na maioria dos sistemas) para tentar gravar em um pipe sem leitores.
Se você modificar seu script para capturar SIGPIPE e tomar alguma ação apropriada (como, parar de escrever saída), então você deve ser capaz de continuar após o término do tee.
Melhor ainda, em vez de matar tee
, use logrotate
com a opção copytruncate
para simplificar.
Para citar logrotate(8)
:
copytruncate
Truncate the original log file in place after creating a copy, instead of moving the old log file and optionally creating a new one. It can be used when some program cannot be told to close its logfile and thus might continue writing (appending) to the previous log file forever. Note that there is a very small time slice between copying the file and truncating it, so some logging data might be lost. When this option is used, the create option will have no effect, as the old log file stays in place.