Como posso reconectar a uma sessão de tela executada por um script?

0

Eu tenho tentado escrever um script que cria uma sessão de tela e inicia um servidor de jogo, o que eu realmente consegui fazer. Mas o problema é reconectar a essa sessão depois de desanexar ... Eu sei que o servidor está sendo executado depois de desanexar da sessão, mas ao escrever screen -ls , minha sessão não aparece. Mesmo se eu digitar Cntrl+A " , nenhuma sessão será exibida. Tentar screen -r me diz que não há sessão, mas tenho 100% de certeza de que o servidor ainda está ativo e digitar ps au mostra o processo. O que estou fazendo errado?

Além disso, crie uma sessão e execute o servidor nela, desanexando e, em seguida, anexando as obras. É apenas quando feito em um script que não é reconectado nem encontrado.

    
por Zebiano 24.09.2017 / 18:18

2 respostas

0

Talvez o seu aplicativo não exija realmente a tela e possa ser executado mesmo sem sessão ativa (tipo daemon). Então, ele pode simplesmente se desconectar da tela, o que realmente termina. Pode ser necessário especificar algum parâmetro para torná-lo em execução em primeiro plano (se houver essa opção).

Você pode tentar executar o bash na tela

screen -dmS script bash -c '/execute/shell/script.sh; exec bash'

Dessa forma, a tela deve sobreviver (com bash) para que você possa ver o console.

    
por 24.09.2017 / 20:44
0

Primeiro inicie uma nova sessão de tela usando:

screen -dmS <sessionname> <script_name>

Isso criará uma nova sessão de tela desanexada com o <sessionname> preparado. Será automaticamente desanexado por padrão.

Mais tarde, você pode ANEXAR a esta sessão sempre que quiser, usando:

screen -r <sessionname>'

Para reativar a sessão em execução.

Observação: Use a combinação de teclado de: CTRL + A seguido por D para a tela DETACH novamente.

Desanexar significa que você continua executando o script na tela, sem matar o script. Significa que você pode reconectar sempre que quiser mais tarde.

    
por 04.04.2018 / 16:34