Comando de execução de tela, desanexar e obter saída

3

Estou tentando escrever um script que conecte e execute o comando em / dev / ttyUSB0 após obter a saída.

screen -d -m 'SCREEN COMMAND' -L /dev/ttyUSB0

Mas isso não cria um arquivo de saída. Como posso resolver esse problema? Alguma idéia?

    
por denizeren 03.12.2012 / 09:05

2 respostas

1

Experimente a biblioteca pyserial do python. Eu acho que você pode resolver isso com essa biblioteca. Você pode encontrar um tutorial em aqui

    
por 03.12.2012 / 10:46
0

screen é bom ter sua sessão de terminal para ser executada desanexada. No entanto, ele não foi projetado para executar automaticamente comandos em terminais.

Para este propósito, outra ferramenta foi desenvolvida - expect .

expect permite criar scripts de interação humana com programas em execução no terminal.

É uma ferramenta poderosa, mas também é outra linguagem de script para aprender e pode ser um pouco entediante. Se você estiver familiarizado com o Perl, o módulo Perl Expect pode economizar muito esforço também são esperados módulos para outras linguagens de script como o Python).

Mais uma nota. No seu caso, parece que /dev/ttyUSB0 é um dispositivo serial sobre USB que pode ser conectado ou desconectado a qualquer momento. Se você quiser manter automaticamente a interação com essa interface serial sobre USB, considere a observação desse dispositivo para aparecer / desaparecer e reconectar automaticamente (digamos no script Perl) ou adicionar a regra do udev (em /etc/udev/rules.d ), que será inicie automaticamente seu programa de tratamento conforme o novo dispositivo USB é conectado.

    
por 03.12.2012 / 09:50