GNU/Linux >> Tutoriales Linux >  >> Linux

¿Iniciar un proceso en un Tty diferente?

Después de aproximadamente una hora de buscar esto en Google, no puedo creer nadie ha hecho esta pregunta antes…

Así que tengo un script ejecutándose en TTY1. ¿Cómo hago para que ese script inicie algún programa arbitrario en TTY2?

  • Encontré tty , que le indica en qué TTY se encuentra actualmente.
  • Encontré writevt , que escribe una sola línea de texto en un TTY diferente.
  • Encontré chvt , que cambia qué TTY se muestra actualmente.

No quiero mostrar TTY2. Solo quiero que el script principal continúe ejecutándose normalmente, pero si cambio manualmente a TTY2, puedo interactuar con el segundo programa.

Respuesta aceptada:

setsid sh -c 'exec command <> /dev/tty2 >&0 2>&1'

Mientras nada más esté usando el otro TTY (/dev/tty2 en este ejemplo), esto debería funcionar. Esto incluye un getty proceso que puede estar esperando que alguien inicie sesión; tener más de un proceso leyendo su entrada de un TTY will conducir a resultados inesperados.

setsid se encarga de iniciar el comando en una nueva sesión.

Tenga en cuenta que command tendrá que encargarse de configurar el stty ajustes correctamente, p. activa el “modo cocinado” y onlcr para que la salida de una nueva línea agregue un retorno de carro, etc.


Linux
  1. ¿Cómo identificar un proceso que no tiene Pid?

  2. ¿Hora de inicio del proceso con zona horaria?

  3. ¿Dónde está devuelve un camino diferente a cuál?

  4. Cómo determinar qué proceso está escribiendo en el disco en Linux

  5. ¿Cómo iniciar un proceso en su propio grupo de procesos?

¿Cómo obtener el Tty en el que se está ejecutando Bash?

¿Qué es un proceso ininterrumpido?

Java ProcessBuilder:el proceso resultante se cuelga

No se puede iniciar el servicio postgresql en CentOS 7

Cómo encontrar qué proceso está causando un alto uso de la CPU

¿Determinar en qué grupo(s) se encuentra un proceso en ejecución?