¿Qué significa "Ejecutar comando como shell de inicio de sesión"?

21

Tengo algunos programas separados instalados, algunos de los cuales requieren que vaya a la configuración de mi terminal GUI y habilite / deshabilite la opción "Ejecutar comando como un shell de inicio de sesión" para que funcione bien.

Ejemplo:

Instalé Ruby on Rails . Desafortunadamente tengo que acceder a las opciones de terminal y habilitar "Ejecutar comando como shell de inicio de sesión" para que esté en mi RUTA.

Esto no fue un problema hasta que instalé sexy-bash-prompt , que funciona solo si la opción está deshabilitada.

Entonces, mi pregunta es esencialmente: ¿qué hace "Ejecutar comando como shell de inicio de sesión"? ¿Hay alguna manera de hacer que las cosas que se ejecutan cuando está deshabilitado se ejecuten cuando se ejecuta como shell de inicio de sesión?

    
pregunta Dropped.on.Caprica 16.08.2013 - 16:53

1 respuesta

26

Suponiendo que tu caparazón sea Bash (el valor predeterminado en Ubuntu), estas son las diferencias:

  • Cuando se ejecuta como un shell inicio de sesión , Bash leerá ~/.bash_profile (o, si eso no existe, ~/.profile ) al inicio. En algunos casos, este archivo también lee ~/.bashrc .

  • Cuando se ejecuta como un shell sin iniciar sesión , Bash leerá ~/.bashrc .

Entonces, ¿por qué ves comportamientos diferentes cuando se ejecuta como un shell de inicio de sesión / no inicio de sesión? Porque tu .bash_profile / .profile está haciendo cosas diferentes a tu .bashrc .

La solución que recomendaría en su caso es copiar las personalizaciones realizadas en .bash_profile / .profile , pegar en .bashrc y desactivar "Ejecutar comando como un shell de inicio de sesión".

    
respondido por el Andrea Corbellini 26.08.2013 - 14:59

Lea otras preguntas en las etiquetas