Isso ocorre porque a tela solicitada por você requer um pty para funcionar. Você precisará iniciar a tela no modo desanexado:
ssh root@server screen -d -m -S myinf python infinit1.py
Eu gostaria de disparar um comando para o servidor para ser executado dizer para sempre! em "sessão de tela" usando ssh.
então estou usando algo como
ssh -t root@server screen -S myinf "python infinit1.py &"
onde infinit1.py é o script. O problema é que o "python infinit1.py" não aparece em segundo plano e nem uma tela chamada "myinf" é criada.
Eu aprecio suas dicas.
faça isso
ssh -t root@server "nohup bash -c '( ( /usr/bin/python infinit1.py &> /dev/null ) & )'"
isso ocorre porque o tty que abriu precisa fechar e, portanto, não pode manter o comando em execução. para ver a saída, altere / dev / null para um nome de arquivo real.
Eu não tentei usar a tela remota, então omiti isso. você pode ser capaz de fazê-lo funcionar, mas talvez a sintaxe esteja um pouco errada.
Você não precisa das aspas ou do e comercial. Use as opções -d -m para iniciar a tela em um modo desanexado. Dê uma olhada na página man para mais informações.
Uma linha de comando de exemplo em funcionamento é:
ssh $host screen -S myinf -d -m tail -F /var/log/dmesg