Eu tenho um shell script que funciona bem quando executado manualmente, mas falha quando executado através do crontab.
O script basicamente faz o seguinte:
Python script to get audio data and pipe to stdout | ffmpeg the data from stdin and pipe to stdout | stream the data from stdin
Quando executado através do crontab, o streaming falha, reclamando que não há dados no stdin ( ...No (more) data available on standard input
).
Eu encontrei esta resposta que parece aludir à questão dos descritores de arquivos no crontab, mas eu apreciaria mais alguns detalhes sobre o problema e a melhor maneira de contornar isso.
EDITAR:
Resolver o problema tentando cada comando individual separadamente mostra que o problema começa no script python que se queixa:
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr"
em vez de enviar dados de áudio. Seguindo o conselho aqui e aqui (adicionado sys.stdout.flush () ao final do arquivo) Eu posso ver a mensagem de erro real:
Traceback (most recent call last):
File "/home/*username*/testing.py", line 109, in <module>
sys.stdout.flush()
IOError: [Errno 9] Bad file descriptor
Então, talvez seja mais um problema de python. Embora o erro ainda parece ter a ver com stdin / stdout