Existe uma maneira de fazer uma sessão de "Tela" sobreviver à reinicialização?

22

Estou usando o utilitário Tela e gostaria de preservar a sessão quando a máquina reinicia. Se não for possível, você pode recomendar outras alternativas para Tela que permitiriam preservar as sessões entre as reinicializações.

Estou usando o Ubuntu Server 10.04 (Lucid Lynx) se isso for importante.

Eu tenho várias sessões abertas via Screen. Quando a máquina reinicializa todas essas sessões são perdidas e eu tenho que reabri-las novamente. Eu queria encontrar uma maneira de preservar essas sessões de tela.

    
por Sergey G 21.09.2010 / 16:21

5 respostas

13

Antes de mais nada, vamos esclarecer algumas coisas importantes:

  1. Quantas máquinas estão envolvidas? Em outras palavras, você está se conectando a uma máquina remota ou está tudo na sua máquina local?
  2. Se houver uma máquina remota envolvida, qual máquina está reinicializando: é o servidor ou o cliente?

Se houver uma máquina envolvida, ou se o servidor estiver sendo reinicializado, você está principalmente sem sorte.

Se você está se conectando a uma máquina remota, mas precisa reinicializar sua máquina local, então não há problema, desde que você esteja executando a tela na máquina remota em vez da sua máquina local. Eu percebo que isso é bastante óbvio para qualquer usuário experiente (mesmo que ligeiramente experiente) da tela, mas eu o mencionei apenas no caso de ser útil.

Ainda outra possibilidade (novamente, se isso é útil para você depende de suas circunstâncias) é executar a máquina com tela em uma VM. Suponha que seja um servidor físico remoto e precise ser reinicializado, mas ele tem um sistema operacional convidado (por exemplo) VMware. Você pode suspender o sistema operacional convidado e iniciá-lo novamente após a reinicialização do hardware. Tudo depende do motivo pelo qual você precisa reinicializar, o que não foi especificado e quanto controle você tem sobre a máquina, e se você está disposto a enfrentar todo esse problema.

Não há solução EASY e é possível que nenhuma das soluções funcione para você. Mas boa sorte.

Se você estiver fazendo login em muitas máquinas, pode parecer muito trabalhoso executar a tela em todas as máquinas remotas separadamente, e é. Neste caso, é útil ter uma tela de execução de máquina intermediária, que pode ter muitas janelas de tela, cada uma delas conectada a outra máquina remota. Enquanto a máquina intermediária permanecer ativa, você pode reinicializar sua própria máquina local (ou embalá-la em sua bolsa e levá-la para casa durante a noite, ou qualquer outra coisa) e a tela continuará funcionando na máquina intermediária. (E, obviamente, se qualquer uma das máquinas remotas cair, você perde a conexão com essa máquina, mas o restante das sessões de tela está bem.)

Mas, na maioria das vezes, você está se referindo à máquina remota ou à única máquina sendo reinicializada; nesse caso, não há uma maneira simples de fazer isso. O CryoPID parece promissor no começo, mas seu site diz que ele não funciona para a tela.

Mas há uma outra opção um pouco promissora que vale a pena explorar. (Se vai funcionar para você depende em grande parte exatamente o que você está tentando fazer.) Confira no github.com: link

    
por 06.11.2010 / 06:52
4

Em algumas circunstâncias raras, isso é possível (veja CryoPID ou CryoPID2 ), mas em geral isso é difícil, então não pode ser feito.

    
por 21.09.2010 / 16:35
4

Você não pode. Certamente não na mesma máquina

    
por 21.09.2010 / 16:25
3

Em vez de usar a tela, use uma pequena VM do Virtualbox e trabalhe nela. Em seguida, você pode apenas hibernar, reinicializar o host e, em seguida, reativar a VM (como fechar e reabrir a tampa de um laptop). Conexões SSH com hosts remotos provavelmente não persistirão por esse método, não acho que seria possível garantir isso.

    
por 06.11.2010 / 09:29
1

Em tudo isso, a tela em si é bastante marginal. Não é a tela que você quer "salvar", é ?, mas os ambientes dentro das várias sessões de tela, sejam elas quais forem.

Você parece estar sugerindo que salvar uma sessão de Tela cobriria um processo SSH dentro dela e de todos os tipos. O que está sendo executado dentro da Tela não é nada do negócio da Screen, e essas são coisas que seriam difíceis de "salvar" ... o que isso realmente significasse se fosse implementável.

    
por 06.11.2010 / 15:57