Eu tenho vários servidores nos quais executo experimentos usando screen
. O procedimento é o seguinte:
ssh
para o servidor XXX- lançamento
screen
- inicie experimentos em algumas guias
- destacar
screen
- desconectar do servidor
Enquanto as experiências estão em execução, posso encontrar facilmente em quais servidores eles estão ssh
acessando todos os servidores e listando meus processos em execução (usando top
ou ps
).
No entanto, depois que as experiências são concluídas, como posso encontrar em quais servidores tenho uma sessão de tela aberta (para que eu possa dar uma olhada na saída, relançá-la etc.)?
PS: meus experimentos também imprimem sua saída em arquivos ... mas esse não é o ponto da minha pergunta.
fonte
ls -R /var/run/screen/S-root/ | grep "NamingConvention"
. As telas são salvas no<pid>.<screen_name>
formato. Isso é útil para scripts bash. Portanto, se você tiver uma tela com nome,0000.NamingConvention
ela literalmente retornará o nome das telas que você procura em um formato fácil de analisar.A lista da tela de comando pode ser o que você deseja.
Veja o homem
fonte
Embora a resposta de joshperry esteja correta, acho muito irritante que ele não diga o nome da tela (o que você definiu com a opção -t), que é realmente o que você usa para identificar uma sessão. (não é culpa dele, é claro, isso é falha de uma tela)
Por isso, em vez disso, uso um script como este:
ps auxw|grep -i screen|grep -v grep
fonte
ls
saída. Se você precisar, também pode manter a opção -t.screen -rd <sessionname>
Não tenho muita certeza da sua pergunta, mas se tudo o que você realmente deseja é uma sessão de tela aberta no momento, tente:
fonte
Se você quiser ver a tela no console, precisará escrever o comando
se você precisar acessar a tela, use o comando abaixo
Escreva
PWD
na linha de comando para verificar em qual pasta você está atualmentefonte
Na maioria dos casos, um
screen -RRx $username/
será suficiente :)Se você ainda deseja listar todas as telas, coloque o seguinte script no seu caminho e chame-o de tela ou o que quiser:
Ele se comportará exatamente como a tela, exceto para mostrar todas as sessões de tela, ao fornecer a opção -ls-all como primeiro parâmetro.
fonte
Várias pessoas já apontaram que
listaria as sessões de tela.
Aqui está outro truque que pode ser útil para você.
Se você adicionar o seguinte comando como uma última linha no seu arquivo .bashrc no servidor xxx, ele será reconectado automaticamente à sua sessão de tela no login.
Espero que você ache útil.
fonte
para ver o que é essa tela em execução, caso você tenha usado o comando
fonte
Então você está usando a tela para manter as experiências em segundo plano, ou o quê? Se sim, por que não apenas iniciá-lo em segundo plano?
E se você está perguntando como receber a notificação do trabalho que fiz, que tal encadear o experimento com um comando mail?
fonte