ssh, screen, execute o comando e desanexe de uma só vez?

1

Eu gosto de iniciar um servidor (basicamente jupiter-notebook ) em uma sessão de tela dentro de um SSH, deixá-lo rodar e, em seguida, desconectar imediatamente. fazendo um por um:

ssh USER@HOST
screen -d -m /home/USER/anaconda3/bin/jupyter-notebook --ip HOST --port 8889 --no-browser

em seguida, desconecte-se da tela e, finalmente, desconecte-se do SSH. Em seguida, use o servidor. Tudo funciona neste caso. Pode-se também ver que a tela está sendo executada por

ssh -t USER@HOST screen -ls

Agora, como faço o primeiro de uma só vez?

ssh -t USER@HOST "screen -d -m /home/USER/anaconda3/bin/jupyter-notebook --ip HOST --port 8889 --no-browser"

não funciona. O que estou fazendo errado?

obrigado

    
por xaratustra 25.01.2017 / 14:39

1 resposta

0

Você está bem perto, mas não precisa do TTY para a tela inicializar - ele cria seu próprio PTY. Mas você precisa colocar a sessão ssh em segundo plano, permitindo que o processo da tela continue em execução, como em:

ssh -f USER@HOST 'screen -dm command'

Pode-se também ver esta resposta para outras coisas que você pode fazer na sessão da tela de corrida, se o nomear.

    
por 25.01.2017 / 18:57