É possível persistir o "estado" de uma GNU (ou apenas um Shell padrão) para que eu possa recarregar tudo após uma reinicialização:
Não é realmente possível salvar uma sessão de tela completa.
O que você pode fazer é criar um .screenrc
Adequado, que irá configurar algumas coisas depois que você reiniciar o sistema.
Aqui estão alguns comentários para as coisas que você listou:
Eu uso algo assim no meu .screenrc
Para abrir alguns shells específicos 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 seu 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 em suas sessões? IMHO isso torna as coisas muito mais fáceis. No ZSH, é feito com setopt SHARE_HISTORY
No seu .zshrc
Se você realmente precisa disso e não deseja nenhum compromisso, pode pensar em um script do 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 sessão de tela . Permite salvar e recarregar GNU Sessões de tela até certo ponto.
Existe uma ferramenta para congelar o estado de um processo chamado cryopid . 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 parece não estar muito ativo no momento, mas você pode acompanhar o progresso deles.
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 login lá, em vez de todas serem iguais para o seu nfs montado/doméstico ou similar.
HTH, -pbr