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.