GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo inicio un segundo shell cuando estoy en modo de usuario único?

Solución 1:

Hay un comando diseñado específicamente para esta situación:openvt . Solo ejecuta openvt desde su shell en tty1 y encontrará un shell ejecutándose en el primer tty que aún no tenía algo (probablemente tty2). Hay varias opciones que pueden resultarle útiles; consulte la página de manual de openvt.

Dado que 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á alternar (Alt-F1 Alt-F2) y ver lo que había en la pantalla cuando salió del shell. El deallocvt El comando destruye los ttys que se encuentran en este estado similar a un zombi, volviendo al estado original "Alt-F2 no hace nada".

Originalmente, estos comandos se llamaban open y disalloc , pero finalmente alguien decidió cambiarlos porque eran demasiado genéricos y se consideró que desasignar "no era una palabra".

En los viejos tiempos, era común que el controlador del teclado y el inicio se configuraran para que Alt+Arriba ejecutara open , por lo que actuaría como una tecla de acceso rápido para generar un shell en una nueva consola. Es posible que aún encuentre un remanente de esa configuración anterior, comentada, en su /etc/inittab . (Si no está utilizando un nuevo inicio elegante que no tiene un inittab .)

Hay una pregunta similar aquí

Solución 2:

Podría generar otro getty para los ttys que quieras. Inicie en modo de usuario único, luego inicie un getty en tty2:

[email protected]:~# /sbin/getty 38400 tty2 &

Ahora puede Alt +F2 a la nueva tty. Repita para ttys adicionales según sea necesario. Probablemente podrías hacer algo más limpio y simplemente configurar /etc/inittab para manejar esto automáticamente en modo de usuario único.

Solución 3:

Probablemente pueda prescindir de una instancia de shell adicional usando JOB CONTROL en su shell actual. Está documentado en la página de manual de bash(1) .

Simplemente puede suspender una tarea usando Ctrl +Z secuencia de forma predeterminada, aunque se puede configurar en su terminal de una manera diferente, verifique la salida de stty -a :

$ stty -a | grep susp
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;

Puede verificar sus trabajos emitiendo jobs :

# jobs
[1]   Stopped                 journalctl -f
[2]-  Stopped                 vim /etc/hosts
[3]+  Stopped                 tail -f /var/log/firewalld

Trae uno de ellos al primer plano:

$ fg %3

O reanudarlo en segundo plano:

$ bg %2

Este método no tiene muchas de las ventajas de screen o tmux , pero puede ser igualmente útil en algunas situaciones.


Linux
  1. Modo de usuario único de Linux

  2. Cómo crear un usuario SFTP sin acceso Shell en CentOS 8

  3. ¿Cuándo poner comillas alrededor de una variable de shell?

  4. ¿Cómo forzar a Fedora 12 a comenzar en modo texto?

  5. Solicitar al usuario que inicie sesión como root cuando ejecute un script de shell

Cómo iniciar el servidor RHEL 7/CentOS 7 en modo de usuario único

Cómo iniciar el servidor CentOS 8 / RHEL 8 en modo de usuario único

Cómo iniciar Fish Shell en modo privado en Linux

CentOS / RHEL 6:cómo iniciar en modo de usuario único

CentOS / RHEL 5:Cómo proteger con contraseña el modo de usuario único

CentOS / RHEL 6:Cómo proteger con contraseña el modo de usuario único