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.


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 getty@ttyX.service

  • Reemplace Xcon el ttynúmero que desea cerrar
    • Si se usó [F4] para cambiar al nombre ttydel servicio getty@tty4.service.
  • 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
    • # systemctl stop getty@tty4.service
  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 getty@.servicedetty4
    • systemctl status getty@tty4.service | 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)

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.