GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso avviare una seconda shell in modalità utente singolo?

Soluzione 1:

C'è un comando progettato specificamente per questa situazione:openvt . Basta eseguire openvt dalla tua shell su tty1 e troverai una shell in esecuzione sul primo tty che non aveva già qualcosa su di essa (probabilmente tty2). Ci sono diverse opzioni che potresti trovare utili; vedi la pagina man di openvt.

Dato che questo non è un login gestito da getty, quando esci dalla nuova shell non vedrai apparire un prompt di login. Il tty si spegnerà poiché non ci saranno processi in esecuzione su di esso, ma sarai comunque in grado di passare avanti e indietro (Alt-F1 Alt-F2) e vedere cosa c'era sullo schermo quando sei uscito dalla shell. Il deallocvt Il comando distrugge i tty che si trovano in questo stato simile a uno zombi, tornando allo stato originale "Alt-F2 non fa nulla".

Originariamente questi comandi erano chiamati open e disalloc , ma alla fine qualcuno ha deciso di cambiarli perché erano troppo generici e la disallocazione è stata giudicata "non una parola".

In passato era comune che il driver della tastiera e l'init fossero configurati in modo che Alt+Su eseguisse open , quindi fungerebbe da tasto di scelta rapida per generare una shell su una nuova console. Potresti ancora trovare un residuo di quella vecchia configurazione, commentata, nel tuo /etc/inittab . (Se non stai usando un nuovo init stravagante che non ha un inittab .)

C'è una domanda simile qui

Soluzione 2:

Potresti generare un altro getty per qualunque cosa tu voglia. Avvia in modalità utente singolo, quindi avvia un getty su tty2:

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

Ora puoi Alt +F2 oltre al nuovo tty. Ripeti per ulteriori tty se necessario. Probabilmente potresti fare qualcosa di più pulito e semplicemente configurare /etc/inittab per gestirlo automaticamente in modalità utente singolo.

Soluzione 3:

Probabilmente puoi fare a meno di un'istanza di shell extra usando JOB CONTROL nella tua shell attuale. È documentato nella manpage di bash(1) .

Puoi semplicemente sospendere un'attività usando Ctrl +Z sequenza per impostazione predefinita, sebbene possa essere configurata nel tuo terminale in modo diverso, controlla l'output di stty -a :

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

Puoi controllare i tuoi lavori emettendo jobs :

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

Portane uno in primo piano:

$ fg %3

Oppure riprendilo in background:

$ bg %2

Questo metodo non ha molti dei vantaggi di screen o tmux , ma può essere ugualmente utile in alcune situazioni.


Linux
  1. Modalità utente singolo Linux

  2. Come avviare tutte le sessioni della shell in una directory diversa da $home?

  3. CentOS / RHEL:come modificare la shell di accesso dell'utente

  4. Quando avvolgere le virgolette attorno a una variabile di shell?

  5. Come posso tranquillamente dare una conchiglia a qualcuno?

Come avviare il server RHEL 7 / CentOS 7 in modalità utente singolo

Come avviare il server CentOS 8 / RHEL 8 in modalità utente singolo

Come avviare Fish Shell in modalità privata in Linux

CentOS / RHEL 6:come avviare in modalità utente singolo

CentOS / RHEL 5:come proteggere con password la modalità utente singolo

CentOS / RHEL 6:come proteggere con password la modalità utente singolo