Estou usando a tela assim:
screen -L -dm -S session1 -c "./game_server -options"
para envolver os servidores de jogos. Eu registro sua saída em um arquivo e posso enviá-los com:
screen -r session1 -p0 -X "stuff \"this into input^M\""
O tempo limite entre os flushes do arquivo de log pode ser especificado no arquivo de configuração (10 segundos no meu caso).
O problema que tenho é que não posso forçar a tela a liberar a saída para o arquivo de log. Por exemplo, depois de enviar um comando "status" para um servidor de jogo, o servidor do jogo imprime algumas informações, mas são necessários pelo menos 10 segundos para adicioná-lo ao arquivo de log.
Eu tentei enviar:
screen -r session1 -p0 -X "logfile flush 1"
Mas isso não reage a isso. Eu também tentei flush 0 sem sorte.
Eu não quero sempre registrar com um tempo limite de 1 segundo, só é realmente necessário depois de receber um comando. Note que estou paranóico com o desempenho aqui porque a sessão está executando um servidor de jogo, afinal.
Como posso forçar a tela a liberar a saída para o arquivo de log? Existe uma maneira de fazer o que eu preciso (log de saída para arquivo e enviar comandos para entrada) que não seja com tela, talvez com um fifo?