No.

No.

Desde la interfaz de programación de Linux

En un shell interactivo, estos tres descriptores de archivos 0, 1 y 2 normalmente se refieren al terminal bajo el cual se ejecuta el shell.

  1. ¿Significa "el terminal bajo el cual se ejecuta el shell" el terminal de control de la sesión a la que pertenece el shell interactivo?

    En caso afirmativo, ¿qué pasa si la sesión del shell no tiene una terminal de control?

  2. Cuando el shell se crea a partir de su proceso principal, el shell creará automáticamente una conexión entre los descriptores de archivo 0, 1 y 2 y el terminal, en cada uno de los siguientes casos (herencia del proceso principal del shell):

    • ¿Si "el terminal bajo el cual se ejecuta el shell" o el terminal de control ya se ha abierto en un descriptor de archivo que no es 0, 1 y 2?

    • ¿Si los descriptores de archivo 0, 1 y 2 ya se han conectado a un archivo que no es "el terminal bajo el cual se ejecuta el shell" o el terminal de control?

  3. ¿Qué pasa si el shell de la cita no es interactivo?

Gracias.

Por cierto, simplemente asuma que "shell" es POSIX o bash.

Relacionado¿Cómo podemos desconectar un descriptor de archivo de cualquier archivo?

Respuesta1

No.

Esto se hace mediante las diversas implementaciones de getty, poropen-controlling-tty, por la parte bifurcada del lado pty-esclavo de un servidor SSH, por la parte bifurcada del lado pty-esclavo de un emulador de terminal GUI, o algo así.

Y observe que el texto citadono tiene ninguna implicaciónque el caparazón hace esto. Ha creado una gran cantidad de preguntas basadas en una premisa falsa extraída de la nada.

Y sabías que gettyhace esto, porque escribiste que así era en "¿Cuándo se inicia el proceso de sesión liderado por inicio de sesión?", escrito al mismo tiempo que esta pregunta.

Otras lecturas

información relacionada