Suprimir 'Warning: no access to tty' no ssh

0

Eu tenho um pequeno script simples, que compila um arquivo .c e o executa em um servidor remoto rodando tcsh e depois devolve o controle para minha máquina (isso é para a escola, eu preciso que meus programas funcionem corretamente nos computadores do laboratório, mas quero editá-los, etc. na minha máquina). Ele executa comandos desta maneira:

ssh -T user@server << EOF
cd cs4400/$dest
gcc -o $efile $file
./$efile
EOF

Até agora, tudo funciona bem, mas esse alerta sempre é feito:

Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.

Eu sei que isso tecnicamente não é um problema, mas é SUPER chato. Eu estou tentando fazer o trabalho da escola, verificando a saída do meu programa etc., e isso desordena tudo, e eu odeio isso.

Estou executando esta versão do ssh na minha máquina:

OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012

Esta versão do tcsh no servidor:

tcsh 6.17.00 (Astron) 2009-07-10 (x86_64-unknown-linux)

E esta versão do ssh no servidor:

OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
    
por blaineh 17.09.2013 / 19:17

2 respostas

0

Parece não haver nada específico para tcsh em seu script, então apenas contorne-o. Exemplo:

ssh -T user@server "/bin/bash -ec 'cd cs4400/$dest ; gcc -o $efile $file ; ./$efile'"
    
por 17.09.2013 / 19:33
0

A opção -T ssh está desativando o encaminhamento das variáveis de ambiente locais. Assim, sua variável TERM é ausente ou indefinida, caso em que o ssh não pode atribuir um pseudo-terminal (pty) adequado, o que geralmente significa que você não pode usar comandos de conclusão de linha de comando e de linha de comando, etc. Você pode tentar remediar a situação com: TERM=vt100 ssh -T user@server ...

Verifique também suas variáveis de envronmento com: set e set -o .

    
por 27.05.2014 / 15:35

Tags