A execução de screen -xR
será basicamente igual à execução de screen -xr || screen
.
O problema é que, até onde eu sei, você não pode passar flags para um shell de login. Além disso, ter uma tela semelhante a não shell como seu shell de login provavelmente quebraria coisas como SFTP.
Então, o que faremos é definir o bash como nosso shell de login. Em seguida, vamos adicionar ao final do código .bashrc (um arquivo bash é executado quando você iniciá-lo) que executa a tela. A tela irá então executar qualquer shell especificado em .screenrc
.
Faremos com que este comando seja executado somente sob uma condição especial: Somente se a cópia atual em execução não tiver sido iniciada (possivelmente indiretamente) por outra cópia do bash. Isso fará com que, se o usuário quiser o bash como shell, e a tela começar a bater dentro dele, o usuário não terá uma explosão de bonecas russas de bash dentro da tela dentro do bash dentro da tela dentro do bash até o computador fica sem memória.
Primeiro, altere o shell para / bin / bash, executando chsh
, digitando sua senha, digitando /bin/bash
e pressionando Enter.
Em seguida, edite o arquivo .bashrc
oculto na sua pasta pessoal, adicionando o seguinte ao final:
if [ ${SHLVL} -eq 1 ]; then
((SHLVL+=1)); export SHLVL
exec screen -xR
fi
Agora, edite (crie se ele não sair) o arquivo oculto .screenrc
na pasta inicial. Adicione ou edite as seguintes configurações:
shell /bin/zsh
startup_message off
(Claro, se você quiser algum outro shell que Zsh, vá em frente e coloque isso em vez disso. Deveria até trabalhar com bash.)