Redirecionar o console serial do linux

3

Eu quero redirecionar minha porta serial durante a sessão de telnet no linux.

Eu tenho uma caixa Linux embutida que tem um console serial. Depois de fazer um telnet para a caixa, Eu posso digitar tanto o console serial quanto o console telnet. Eu quero parar o acesso ao console serial ou redirecioná-lo para outra coisa. Depois que eu sair do console do telnet, eu devo poder acessar o console serial novamente. Alguém pode sugerir, por favor?

Eu planejei colocar cat /dev/console > /dev/ttyp0 quando a sessão de telnet é iniciada. Ele resolve o problema de não acessar o console serial quando o console de sessão telnet está aberto, mas quando eu saio do console telnet e digito algo no console serial, para o comando shell -/bin/sh: command not found (Shell não está funcionando talvez?). p>

Obrigado.

    
por user1234 28.08.2012 / 12:59

1 resposta

1

Cada console tem um processo associado a ele. Você pode encontrá-los na lista de processos com bastante facilidade. No Ubuntu, ele é chamado getty ou agetty . Em outros sistemas, pode ser login , ou pode ser apenas um processo de shell.

Tudo o que você precisa fazer é desabilitar esse processo para desligar a porta serial. Você não pode matá-lo porque init apenas gerará um novo, mas você poderá pausá-lo:

kill -STOP <pid>

Onde você encontra <pid> com ps .

Então, quando quiser reativá-lo, você o reinicia:

kill -CONT <pid>

Ou, se você quiser começar de novo, mate-o e deixe o respawn acontecer:

kill -KILL <pid>

É claro que você deve se lembrar de reiniciá-lo antes de sair do telnet. Se você quer algo mais à prova de erros, depende dos utilitários que seu sistema possui. Se você tiver cron , poderá configurar algo que verifique se o telnet desapareceu (desde a última vez em que o localizou) e reinicia o terminal serial. Seria um pouco complicado, mas possível. Se você não tiver o cron, inicie algum tipo de processo em segundo plano que seja ativado no SIGHUP e reinicie. Isso é provavelmente ainda mais complicado.

    
por 29.08.2012 / 11:34