¿Ejecutar xterm con shell de inicio de sesión o no?

¿Ejecutar xterm con shell de inicio de sesión o no?

De forma predeterminada, xterminicia un shell interactivo. Pero también puedes configurarlo para iniciar un interactivo.shell de inicio de sesión.

Eso significa que al iniciar un xtermobtienes el mismo tipo de shell que al iniciar sesión a través de ssh/virtual console/su.

¿Cuáles son las ventajas/desventajas de configurar unshell de inicio de sesiónen xterm?

Puedo pensar en:

  • uptime, w, lastetc. informan tantos usuarios como xtermestán abiertos. (¿ventaja?)
  • bashsólo fuentes .login, .profilecuando /etc/profile.dse inició comoshell de inicio de sesión
  • zshtiene archivos similares que lee cuando se inicia comoshell de inicio de sesión- pero en mi sistema están vacíos por defecto

Sección de página de manual relacionada xterm:

   -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).

También hay un 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.”

Respuesta1

La ejecución de un shell de inicio de sesión en la terminal ejecutará cualquier programa que coloque en su .profile, incluso si espera que ese programa se ejecute solo una vez por sesión (por ejemplo, ssh-agenty otros conjuntos de claves). La ejecución de un shell de inicio de sesión sobrescribirá las variables de entorno que haya configurado en su sesión o en el proceso principal del terminal.

El mayor problema que experimentan las personas que ejecutan un shell de inicio de sesión en terminales es que generalmente no configuran sus variables de entorno cuando inician sesión en la GUI. El inconveniente de esto es que las variables de entorno sólo están disponibles en programas iniciados desde una terminal, no en programas iniciados directamente a través de la GUI. Si configura sus variables de entorno al momento de iniciar sesión, configurarlas nuevamente en cada terminal es, en el mejor de los casos, inútil y, a veces, un problema, como se vio arriba.

Ver tambiénDiferencia entre .bashrc y .bash_profile,Alternativa a .bashrcy bastantes preguntas que he visto en Stack Exchange que se habrían evitado si el autor de la pregunta hubiera establecido variables de entorno por sesión.

información relacionada