Use a tela GNU como login “shell”

21

Qual é a melhor maneira de executar automaticamente a tela quando você abre um novo shell, seja por login, xterm ou qualquer outra coisa?

Eu vejo que a recomendação mais comum é colocar exec screen no arquivo rc ou login / profile do seu shell regular, mas para, por exemplo, tcsh, shells de login executam .login por último, enquanto shells não-login lêem .cshrc last . Se eu colocar exec screen em .cshrc, os shells de login não irão originar o arquivo .login, e se eu colocá-lo em .login, shells não-login não serão executados na tela. Eu suponho que há problemas semelhantes com outros shells.

    
por wfaulk 07.10.2009 / 17:12

3 respostas

19

Um caminho é:

# if $STY is not set...
if [ -z "$STY" ]; then
    exec screen -ARR
fi

Observe que isso é gravado para bash , mas deve ser semelhante para csh também. Coloque-o em .cshrc para ser executado em shells all .

Outra maneira: você pode simplesmente definir screen como seu shell de login em /etc/passwd , e colocar essa linha em seu ~/.screenrc : (corrija o caminho, é claro)

defshell /bin/csh

Mas isso pode quebrar programas que executam o shell de login definido em /etc/passwd para vários comandos.

( Editar: Não esqueça de adicionar tela a /etc/shells )

    
por 07.10.2009 / 18:24
4

Velha pergunta, mas googling para a mesma coisa me trouxe aqui então aqui está uma resposta para qualquer outra pessoa que tropeça nesta página.

A melhor coisa que eu encontrei até agora é byobu se a sua distro o tiver. Vem com uma opção para executar no login e controla várias telas ao mesmo tempo.

Você pode desanexar e fazer logout em um local e fazer login na mesma sessão em outro local.

Acho ótimo usar a tela para executar processos do servidor, mas o byobu é ótimo para coisas do dia-a-dia.

    
por 17.08.2012 / 14:45
-2

Que tal usar o chsh:

chsh /usr/bin/screen

Isso define o shell de login padrão em / etc / passwd. (você poderia estar lá também)

    
por 17.08.2012 / 14:56