Esto puede sonar como una contradicción en términos, pero recientemente he necesitado usar el modo de usuario único (también conocido como modo de mantenimiento) durante algún tiempo (¡días!) Al intentar reconstruir una matriz RAID rota.
Al hacer esto, me encontré con ganas de usar un segundo shell para cosas tales como verificar / editar la configuración en varios archivos de configuración o mirar los registros del sistema mientras la consola principal (y única) está atada ejecutando algún proceso de recuperación.
¿Cuál sería el comando recomendado para lanzar un segundo shell en otro tty?
Obviamente, un método podría ser usar screen
en tty1, pero esto no tiene la facilidad de cambiar las sesiones con Alt-F1, Alt-F2, etc.
screen
es tan fácil como eso Ctrl AP no parece mucho más complicado que Alt F1 ...screen
ytmux
para la administración de ventanas TUI no siempre funcionan. A veces necesitas unttyX
dispositivo real , en lugar de unpts
.Respuestas:
Hay un comando diseñado específicamente para esta situación:
openvt
. Simplemente ejecuteopenvt
desde su shell en tty1 y encontrará un shell que se ejecuta en el primer tty que aún no tenía algo (probablemente tty2). Hay varias opciones que puede encontrar útiles; vea la página de manual de openvt.Como este no es un inicio de sesión administrado por getty, cuando salga del nuevo shell no verá aparecer un mensaje de inicio de sesión. El tty simplemente se apagará ya que no habrá procesos ejecutándose en él, pero aún podrá cambiar de un lado a otro (Alt-F1 Alt-F2) y ver lo que estaba en la pantalla cuando salió del shell. El
deallocvt
comando destruye los ttys que se encuentran en este estado de zombie, volviendo al estado original "Alt-F2 no hace nada".Originalmente, estos comandos se llamaron
open
ydisalloc
, pero finalmente alguien decidió cambiarlos porque eran demasiado genéricos y se consideró que la asignación no era "una palabra".En los viejos tiempos, era común que el controlador del teclado y el init se configuraran para que Alt + Up se ejecutara
open
, por lo que actuaría como una tecla de acceso rápido para generar un shell en una nueva consola. Aún puede encontrar un remanente de esa configuración anterior, comentado, en su/etc/inittab
. (Si no está utilizando un nuevo init elegante que no tiene uninittab
.)Hay una pregunta similar aquí
fuente
openvt
. +1.openvt
demostró ser muy útil. Gracias por traer un nuevo comando a mi aviso.Podrías generar otro
getty
por el ttys que quieras. Arranque en modo de usuario único, luego inicie agetty
en tty2:Ahora puede Alt+ F2pasar al nuevo tty. Repita para ttys adicionales según sea necesario. Probablemente podría hacer algo más limpio y simplemente configurarlo
/etc/inittab
para manejarlo automáticamente en modo de usuario único.fuente
init
, no se vuelve a generar si muere./etc/inittab
y,/etc/rc1.d/S??single
como mínimo,Probablemente pueda prescindir de una instancia de shell adicional utilizando
JOB CONTROL
su shell actual. Está documentado en la página de manual debash(1)
.Puede suspender una tarea utilizando la secuencia Ctrl+ Zde forma predeterminada, aunque se puede configurar en su terminal de una manera diferente, verifique la salida de
stty -a
:Puede verificar sus trabajos emitiendo
jobs
:Trae uno de ellos al primer plano:
O reanudarlo en segundo plano:
Este método no tiene muchas de las ventajas de
screen
otmux
, pero puede ser igualmente útil en algunas situaciones.fuente
ddrescue
csh
,tcsh
ozsh
, por ejemplo), por lo que mencionar su página de manual sería inexacto en ese caso. Por otro lado, esto no responde la pregunta como se le preguntó.Considere usar multiplexores de terminal como tmux o screen.
Obtenga más información sobre tmux aquí: https://github.com/tmux/tmux/wiki
fuente
screen
y sentía que otros multiplexores eran aún más exagerados. Todo lo que necesito es una segunda consola simple.screen
en tu pregunta. Era tarde.