Como executar a tela GNU no modo desanexado através do console serial e salvar a saída?

1

Eu quero usar a tela GNU para executar um único comando no modo desanexado em um console serial e salvar sua saída no arquivo de log no host onde a tela está sendo executada. Basicamente, equivalente não interativo das seguintes ações:

screen /dev/ttyUSB0 115200 # connect to serial console "/dev/ttyUSB0" using speed "115200"
ctrl+a H # start logging
some command
ctrl+a k y # quit

Eu sei como executar um único comando no modo desanexado no shell atual:

screen -d -m -L some command
# output is saved to screenlog.0

Mas eu não entendo como fazer a mesma coisa enquanto se conecta a um console serial.

    
por Thunderbeef 10.01.2018 / 17:35

1 resposta

3

Eu não posso testar isso corretamente em uma porta serial, mas acho que isso pode funcionar:

$ screen -S serial -L -d -m /dev/ttyUSB0
$ screen -S serial -X stuff 'some command\n'

Minha versão de screen aceita um argumento para -L , o nome do arquivo de log. Aparentemente, nem todas as versões fazem. Outra maneira de definir o nome do arquivo de log seria com screen -S serial -X logfile filename (se isso funcionar). screen armazena a saída no log por um tempo antes de gravar. Por padrão, o tempo limite é de 10 segundos, mas consulte logfile flush NN para alterar isso .

-X envia um comando para um screen em execução e stuff , bem, " stuffs "a string dada como entrada na janela atual .

    
por 10.01.2018 / 18:12