Iniciando uma sessão de tela em segundo plano a partir do ssh.

1

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.

    
por user702846 16.07.2013 / 21:14

3 respostas

1

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
    
por 16.07.2013 / 23:36
1

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.

    
por 16.07.2013 / 21:34
0

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
    
por 16.07.2013 / 23:39