Não é realmente possível salvar uma sessão de tela completa.
O que você pode fazer é criar um apropriado .screenrc
que irá configurar algumas coisas depois que você reiniciar o sistema.
Aqui estão alguns comentários para as coisas que você listou:
- O número de conchas abertas
- O nome de cada shell
- O diretório atual de cada shell
Eu uso algo assim no meu .screenrc
para abrir algumas conchas específicas na inicialização:
## set the default shell
shell zsh
# screens
screen -t 'zsh'
screen -t 'mutt' mutt
screen -t 'zsh' /home/user/bin/scriptToRun
[..]
Você receberá a string entre '' como o nome da janela e o comando após o nome ser executado no shell padrão. Inclua qualquer script que desejar, por exemplo, altere em um diretório específico e abra alguns logs.
Você já pensou em compartilhar a história dos reservatórios nas suas sessões? IMHO isso torna as coisas muito mais fáceis. No ZSH, é feito setopt SHARE_HISTORY
no seu.zshrc
- Se possível, suas variáveis de ambiente
Se você realmente precisa disso e não deseja nenhum compromisso, pode pensar em um script de shell, que lê o estado atual da tela, salva o número de shells, variáveis de ambiente etc. e coloca essas informações em um script de inicialização chamado pelo seu .screenrc
. Para mim, isso não valeria o esforço, porque eu aprecio um ambiente limpo após uma reinicialização, se eu puder personalizar as janelas padrão da tela.
Eu me deparei com um projeto chamado screen-session . Ele permite que você salve e recarregue as sessões da Tela GNU até certo ponto.
fonte
Existe uma ferramenta para congelar o estado de um processo chamado criopídeo . No entanto, atualmente ele não funciona com a tela GNU, pois não suporta a recriação de uma hierarquia de subprocessos. Eles afirmam que desejam alcançar isso no futuro, mas o projeto não parece estar muito ativo no momento. No entanto, você pode querer rastrear o progresso deles.
fonte
Eu construí uma coisa semelhante no solaris anos atrás. Nem mesmo relacionado à tela; foi relacionado à sessão. "se $ TTY = qualquer coisa". echox tem a ideia certa.
dica: se você estiver fazendo isso em várias máquinas, reconheça que cada máquina merece sua própria definição do que deve ser feito quando você faz o login lá, em vez de todas serem iguais para o seu nfs montado / doméstico ou similar.
HTH, -pbr
fonte