Cómo cerrar un tty

14

He abierto varios ttys y no sé la combinación de teclas que debo usar para cerrar un tty. Estoy usando Arch Linux.

ngwdaniel
fuente
2
No los abriste, están abiertos. Acabas de cambiar la TV. Si desea cerrar sesión en uno de ellos, use exit. Si no has iniciado sesión, no te preocupes. Estaba allí antes, solo que no lo estabas mirando.
Ricitos de oro
1
@goldilocks, los VT se pueden asignar y cerrar dinámicamente. El primero siempre se asigna cuando la consola está en él, inity X generalmente asigna los siguientes, pero puede asignar más. Abrir el /dev/ttyxdispositivo es suficiente para asignarlo.
Stéphane Chazelas
@StephaneChazelas: bastante justo. Estaba deduciendo por "usar combinaciones de teclas" que ngwdaniel en realidad no comenzó nada que init no hubiera generado ya. Si es así, no hay necesidad de cerrarlos (y como señala en su respuesta, eso no es tan fácil de todos modos).
Ricitos de Oro
¿Querías reducir el recuento de tty disponibles?
Margarita
@goldilocks gracias, esta es la respuesta que estaba buscando. Soy un principiante tonto y pensé que fui yo quien abrió los ttys por <Alt> + <F2> etc.
ngwdaniel

Respuestas:

10

"Cerrar" un TTY

  • Si systemdno se initestá utilizando, entonces esto no lo ayudará.
  • sysvinitse ya no apoyado por Arch Linux

systemd's systemctlse usa para controlar todo service unitsel sistema. Para obtener más información al respecto referencia man systemd.unit. Detener el gettyservicio en el deseado ttyrealizará la tarea en cuestión. A continuación se muestra el comando para realizar esta acción y también he agregado una prueba para que pueda confirmar los resultados.

# systemctl stop [email protected]

  • Reemplace Xcon el ttynúmero que desea cerrar
  • Este procedimiento también cerrará todas las aplicaciones / clientes ejecutados desde el especificado tty.

Prueba

  1. Cambie a tty4e ingrese su usernamey password.
    • <CTRL>+<ALT>+[F4]
  2. Inicia tu editor de texto favorito
    • vim foo.bar
  3. Cambiar de nuevo a tty1 o en el que ttyestaba originalmente
    • <CTRL>+<ALT>+[F1]
  4. Abra una ventana de terminal y verifique si vim está ejecutando
    • pgrep vim
      • pgrepdevuelve el número de proceso de señal de la aplicación especificada. Se devolverán varios números si hay varias instancias de la misma aplicación
        • (si hay cuatro ventanas de terminal abiertas, pgrepgenerará cuatro números de proceso)
  5. Como root detenga el gettyservicio paratty4
  6. Vuelva a verificar si vimtodavía está activo entty4 donde se abrió y editófoo.bar
    • pgrep vim (si no hay salida / menos salida que en el paso 4, entonces no hay proceso)
  7. Doble comprobar el estado de la [email protected]detty4
    • systemctl status [email protected] | grep -i "Active"
      • La canalización de la salida grep -i "Active"solo generará la línea requerida que deberá observar para confirmar que gettyse ha deshabilitado
        • Active: inactive (dead)
cinelli
fuente
Puede usar el whocomando para enumerar los usuarios actualmente registrados y los números tty.
Djolo
5

Creo que es el deallocvtcomando que estás buscando.

Primero asegúrese de que el VT ya no se use. Por ejemplo, si hay una gettycomenzó con respawning por initen esa consola, no hay razón para tratar de anular la planificación de ella, que había necesidad de eliminar ese TTY de la inittabprimera y contar initpara recargar su configuración. Si hay un caparazón, salga del caparazón, etc.

Stéphane Chazelas
fuente