Como liberar uma porta serial de propriedade do Getty

1

Eu tenho máquinas em pares. Eles estão conectados uns aos outros por um cabo serial de modem nulo. Essas máquinas às vezes caem, e a única maneira de diagnosticá-las é através desse cabo, usando o outro nó do par.

Esses dispositivos têm o Getty configurado para ser executado no dispositivo serial /dev/ttyAMA0 . Isso é por padrão, e eu gostaria de manter o mais próximo possível da configuração padrão.

Aqui está o problema:

Não consigo fazer o Getty abrir mão do controle do dispositivo, então posso usar algo como minicom para fazer login no outro dispositivo. Infelizmente, simplesmente matar getty não funciona, já que algo parece reiniciar imediatamente.

Como posso fazer com que getty pare?

    
por PythonNut 10.06.2015 / 06:53

2 respostas

1

(A propósito, eu nunca vi a ortografia "GeTTY". Eu não acho que esteja correto.)

A resposta curta é que você pode desabilitar getty comentando em /etc/inittab e executando init q para reler a configuração. A menos que você esteja usando o systemd ou o Upstart, mas como você não disse, vou assumir que você não está.

A resposta mais longa é que sua configuração tem um problema intrínseco e é falha. Com getty sendo executado em ambas as portas seriais, os dois processos getty correm o risco de começar a conversar sem parar uns com os outros. Ou seja, um enviará um prompt, que o outro interpreta como um nome de usuário, o que faz com que ele produza seu próprio prompt, que é interpretado como um nome de usuário no final original, e assim por diante.

A maneira correta de lidar com isso é usar duas portas seriais, uma em cada direção. A porta serial do console no sistema 1 é conectada à porta serial extra no sistema 2, e a porta serial do console no sistema 2 é conectada à porta serial extra no sistema 1. Como as portas seriais "extras" em ambos os sistemas nunca são executadasgetty (somente as portas seriais do console fazem), nunca há um getty para desativar e a porta pode ser usada diretamente por screen ou cu etc ...

Para as portas seriais "extras", você pode usar adaptadores de porta serial USB se os sistemas não fornecerem portas seriais internas suficientes. Como essas portas são acessadas somente depois que o sistema é totalmente inicializado (ao contrário da porta serial do console), tudo bem se elas estiverem em um barramento USB que não será inicializado até a metade da seqüência de inicialização.

    
por 10.06.2015 / 07:20
0

Você pode enviar um sinal de parada. Ele não será reiniciado até que r ou outro sinal seja enviado.

sudo kill -19 <pidOfGetty>

Você pode verificar se ele está parado no momento com:

ps a | grep getty

root       948  0.0  0.0   4656  2032 tty5     Ts+  Sep20   0:00 /sbin/getty -8 38400 tty5
root       958  0.0  0.0   4656  1880 tty2     Ss+  Sep20   0:00 /sbin/getty -8 38400 tty2

O código de estado do processo T significa que está parado. Como no processo 948 no tty5.

    
por 23.09.2016 / 15:43