Executar xterm com shell de login ou não?

5

Por padrão, xterm inicia um shell interativo. Mas você também pode configurá-lo para iniciar um login-shell interativo.

Isso significa que, ao iniciar um xterm , você obtém o mesmo tipo de shell, como efetuar login via ssh / virtual console / su.

Quais são as vantagens / desvantagens de configurar um login-shell no xterm?

Eu posso pensar em:

  • uptime , w , last etc. reportam quantos usuários como xterm estão abertos. (vantagem?)
  • bash somente origens .login , .profile , /etc/profile.d quando iniciado como login-shell
  • zsh tem arquivos semelhantes que ele lê quando iniciado como login-shell - mas no meu sistema eles estão vazios por padrão

Seção da página xterm man relacionada:

   -ls     This  option  indicates  that  the shell that is started in the
           xterm window will be a login shell (i.e., the  first  character
           of  argv[0]  will  be  a  dash, indicating to the shell that it
           should read the user's .login or .profile).

Existe também um recurso:

  loginShell (class LoginShell)
           Specifies whether or not the shell to  be  run  in  the  window
           should be started as a login shell.  The default is “false.”
    
por maxschlepzig 29.03.2012 / 17:47

1 resposta

5

A execução de um shell de login no terminal executará qualquer programa que você colocar no seu .profile , mesmo que você espere que o programa seja executado apenas uma vez por sessão (por exemplo, ssh-agent e outros keyrings). A execução de um shell de login substituirá as variáveis de ambiente que você definiu na sua sessão ou no processo pai do terminal.

O maior problema que as pessoas que executam um shell de login na experiência de terminais é que elas geralmente não definem suas variáveis de ambiente quando fazem login na GUI. A desvantagem disso é que as variáveis de ambiente só estão disponíveis em programas iniciados a partir de um terminal, não de programas iniciados diretamente pela GUI. Se você definir suas variáveis de ambiente no momento do login, defini-las novamente em cada terminal é, na melhor das hipóteses, sem sentido e, às vezes, um problema, como visto acima.

Veja também Diferença entre .bashrc e .bash_profile , Alternativa para .bashrc , e algumas perguntas que vi no Stack Exchange que teriam sido evitadas se o usuário tivesse definido variáveis de ambiente por sessão.

    
por 30.03.2012 / 01:39