Socat é um utilitário baseado em linha de comando que estabelece dois fluxos de bytes bidirecionais e transfere dados entre eles. Como os fluxos podem ser construídos a partir de um grande conjunto de diferentes tipos de fontes e coletores de dados, e porque muitas opções de endereço podem ser aplicadas aos fluxos, o socat pode ser usado para muitas finalidades diferentes. nixCraft
O socat pode fazer coisas de linha de série e pode executar funcionalidades bastante avançadas, como ter vários clientes escutando em uma porta ou reutilizar conexões. O ciclo de vida de uma instância social geralmente consiste em quatro fases.
- Na fase de inicialização, as opções da linha de comando são analisadas e o log é inicializado.
- Durante a fase aberta, socat abre o primeiro endereço e depois o segundo endereço. Essas etapas geralmente estão bloqueando; portanto, especialmente para tipos de endereços complexos, como meias, solicitações de conexão ou diálogos de autenticação devem ser concluídos antes que a próxima etapa seja começou.
- Na fase de transferência, o socat vê os dois fluxos ler e escrever descritores de arquivos via select (), e, quando os dados estão disponíveis em um lado e pode ser escrito para o outro lado, socat lê, executa conversões de caracteres de nova linha, se necessário, e grava os dados no escrever descritor de arquivo do outro fluxo, então continua aguardando mais dados em ambas as direções.
- Quando um dos fluxos atinge efetivamente o EOF, a fase de fechamento começa. Socat transfere a condição EOF para o outro fluxo, tenta desligar apenas o seu fluxo de gravação, dando-lhe a chance de termine graciosamente. Por um tempo definido, a socat continua a transferir dados na outra direção, mas depois fecha todos os canais restantes e termina.
agetty abre uma porta tty, solicita um nome de login e invoca o comando /bin/login
. É normalmente invocado por init(8)
. O agetty tem vários recursos não padrão que são úteis para conexões com fio e para linhas de discagem: ManPage
- Adapta as configurações do tty a bits de paridade e apaga, mata, caracteres de fim-de-linha e maiúsculos quando lê um nome de login. o programa pode manipular caracteres de 7 bits com par, ímpar, nenhum ou espaço paridade e caracteres de 8 bits sem paridade. O seguinte especial caracteres são reconhecidos: @ e Control-U (kill); #, DEL e de volta espaço (apagar); retorno de carro e avanço de linha (fim de linha).
- Opcionalmente deduz a taxa de transmissão das mensagens CONNECT produzidas por modems compatíveis com Hayes (tm).
- Opcionalmente, não desliga quando recebe uma linha já aberta (útil para aplicativos de call-back).
- Opcionalmente, não exibe o conteúdo do arquivo / etc / issue.
- Opcionalmente exibe um arquivo de problema alternativo em vez de / etc / issue.
- Opcionalmente, não solicita um nome de login.
- Opcionalmente chama um programa de login não padrão em vez de / bin / login.
- Opcionalmente ativa o controle de fluxo de hardware
- Opcionalmente, força a linha a ser local sem necessidade de portadora detectar.
- Suporta ringback, se desejado. O procedimento real que o getty usa é o seguinte: Inicialmente, o getty analisa sua linha de comando. Se não houver erros são encontrados, e o tipo tty da linha de comando é definido como "desconhecido" (o valor padrão), ou não definido, o getty verifica o tipo tty em / etc / ttytype se o programa foi compilado com TTYTYPE definido. Se um O tipo tty é encontrado, na linha de comando ou no / etc / ttytype arquivo, então ele é colocado na variável de ambiente TERM. Próximo, getty varre o arquivo padrão, normalmente / etc / default / getty, para determinar certos valores de tempo de execução (/etc/conf.getty se compilado com Opção FSSTND). Os valores no arquivo de padrões (cujo compilado nome pode ser alterado com o argumento opcional -d defaults_file) precedência àquelas na linha de comando. Getty, em seguida, abre a porta para leitura e gravação e desativa o armazenamento temporário stdio. Se um inicialização foi especificada, ela é executada.