Eu gostaria que o picocom registrasse dados seriais em um computador remoto, sem ter que manter viva minha sessão ssh no computador remoto.
Eu tentei:
picocom <my options>
Isso morre quando eu saio.
picocom <my options> &
Sem saída no terminal e saindo picocom
com C-a C-x
deixa o trabalho parado, não o mata (preciso kill -9
, um simples kill
no trabalho não funciona. Tenho que limpar manualmente o bloqueio tty em /var/lock/
).
picocom <my options> > tmp/data.log&
então em outra sessão ssh:
tail -f tmp/data.log
Nenhum dado saiu no arquivo data.log
.
bash -c "picocom --baud 115200 /dev/ttyACM1 > /home/pi/tmp/data.log" &
Nenhuma saída para o arquivo também. O trabalho torna-se "Parado" imediatamente.
nohup sh -c "picocom --baud 115200 /dev/ttyACM1 > /home/pi/tmp/data.log" &
Eu obtenho a saída inicial picocom
no arquivo finalizado, mas o trabalho é encerrado.
É bom saber também: picocom
não reage a C-z
.
Minhas perguntas são:
- é possível executar
picocom
em segundo plano? - quais alternativas existem para registrar o terminal serial sem uma sessão aberta?
Uma alternativa é configurar o dispositivo com
stty
e, em seguida, lê-lo com cat :Eu sugiro usar dtach . dtach permite que você execute programas em segundo plano. Eu tenho usado com sucesso com picocom para fazer log serial sem uma sessão aberta (em um Raspberry Pi remoto).
Também recomendo usar o registro interno do picocom
-g
para salvar dados seriais em um arquivo.Depois de instalar o dtach, você pode executá-lo com picocom como;
dtach -A /tmp/dtach picocom --baud 115200 /dev/ttyACM1 -g /home/pi/tmp/data.log
então, quando o picocom estiver em execução, você poderá colocá-lo em segundo plano com
C-\
para voltar a usar o processo "dtached";
dtach -a /tmp/dtach
Eu descobri que o picocom grava no arquivo de log em segundo plano, então posso
cat /home/pi/tmp/data.log
com o picocom ainda em execução, mas "desconectado"Supondo que a sessão do usuário se refira, você pode usar
screen
com a-X
opção de enviar comandos para uma sessão de tela em execução e ostuff
comando para enviar pressionamentos de tecla para a janela atual.Por favor, tome nota para colocar as aspas e a próxima linha para que os comandos sejam executados. *
... não verifiquei se
bash -c
outmux
seria possível também.