Remotamente iniciando uma sessão de tela através de ssh e fechando a sessão ssh imediatamente

3

Meu objetivo é remoto para um servidor por meio do ssh, iniciar uma tela, iniciar um script, deixar o script ser executado e sair da sessão ssh enquanto mantém a tela executando seu próprio script python. Isso é o que eu tenho:

ssh -t myuser@hostname screen python somepath.py -s 'potato'

O problema com isso é, depois de executá-lo, eu tenho que manualmente ctrl + a + d, e sair da sessão ssh sozinho. Existe uma maneira de fazer tudo de uma vez sem precisar de interação humana?

EDIT: Eu tentei o método sugerido de usar -dm

Isso é o que estou testando para facilitar a visualização:

ssh -t user@host screen "top"

remotamente vejo isto:

user      2557  0.0  0.2  27192  1468 ?        Ss   13:35   0:00 SCREEN top
user      2562  0.0  0.1  11740   932 pts/0    S+   13:35   0:00 grep --color=auto SCREEN

mas se eu fizer isso:

ssh -t user@host screen -dm "top"

Eu imediatamente recebo uma conexão para hospedar fechado. E nada no meu grep

ps aux | grep SCREEN
user      2614  0.0  0.1  11740   932 pts/0    S+   13:36   0:00 grep --color=auto SCREEN
    
por Shelby. S 29.02.2016 / 19:11

1 resposta

3

Você pode usar -d -m em sua sessão de tela para fazer isso:

ssh myuser@hostname screen -d -m "python somepath.py -s 'potato'"

Isso criará uma nova sessão de tela, executará seu comando nela e automaticamente o desconectará dela.

Essa opção está documentada como

-d -m
Start screen in detached mode. This creates a new session but doesn't attach to it. This is useful for system startup scripts.

na página de documentação do GNU para a tela

    
por 29.02.2016 / 19:23