GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara memulai shell kedua saat dalam mode pengguna tunggal?

Solusi 1:

Ada perintah yang dirancang khusus untuk situasi ini:openvt . Jalankan saja openvt dari shell Anda di tty1 dan Anda akan menemukan shell yang berjalan di tty pertama yang belum memiliki sesuatu di dalamnya (tty2 mungkin.) Ada beberapa opsi yang mungkin berguna bagi Anda; lihat halaman manual openvt.

Karena ini bukan login yang dikelola oleh getty, saat Anda keluar dari shell baru, Anda tidak akan melihat prompt login muncul. Tty hanya akan mati karena tidak akan ada proses yang berjalan di atasnya, tetapi Anda masih dapat beralih bolak-balik (Alt-F1 Alt-F2) dan melihat apa yang ada di layar saat Anda keluar dari shell. deallocvt perintah menghancurkan tty yang berada dalam keadaan seperti zombie ini, kembali ke keadaan semula "Alt-F2 tidak melakukan apa-apa".

Awalnya perintah ini disebut open dan disalloc , tetapi akhirnya seseorang memutuskan untuk mengubahnya karena terlalu umum dan dislokasi dinilai sebagai "bukan kata".

Di masa lalu, driver keyboard dan init biasanya dikonfigurasi sehingga Alt+Up akan menjalankan open , jadi itu akan bertindak sebagai hotkey untuk menelurkan shell di konsol baru. Anda mungkin masih menemukan sisa dari konfigurasi lama tersebut, yang dikomentari, di /etc/inittab Anda . (Jika Anda tidak menggunakan beberapa init baru yang mewah yang tidak memiliki inittab .)

Ada pertanyaan serupa di sini

Solusi 2:

Anda dapat menelurkan getty lainnya untuk tty mana pun yang Anda inginkan. Boot ke mode pengguna tunggal, lalu jalankan getty di tty2:

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

Sekarang Anda dapat Alt +F2 ke tty baru. Ulangi untuk tty tambahan sesuai kebutuhan. Anda mungkin dapat melakukan sesuatu yang lebih bersih dan hanya mengonfigurasi /etc/inittab untuk secara otomatis menangani ini dalam mode pengguna tunggal.

Solusi 3:

Anda mungkin dapat melakukannya tanpa instance shell tambahan dengan menggunakan JOB CONTROL di shell Anda saat ini. Itu didokumentasikan dalam halaman manual bash(1) .

Anda cukup menangguhkan tugas menggunakan Ctrl +Z urutan secara default, meskipun dapat dikonfigurasi di terminal Anda dengan cara yang berbeda, periksa output dari stty -a :

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

Anda dapat memeriksa pekerjaan Anda dengan menerbitkan jobs :

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

Bawa salah satunya ke latar depan:

$ fg %3

Atau lanjutkan di latar belakang:

$ bg %2

Metode ini tidak memiliki banyak keuntungan dari screen atau tmux , tetapi dapat sama bergunanya dalam beberapa situasi.


Linux
  1. Bagaimana Memulai Semua Sesi Shell Di Direktori Selain $home?

  2. Cara Membuat Pengguna SFTP tanpa Akses Shell di CentOS 8

  3. Cara membaca hanya satu karakter dalam skrip shell

  1. Bagaimana cara memaksa Fedora 12 untuk memulai ke mode teks?

  2. Bagaimana saya memulai di bash ketika ssh'ing ke server saya?

  3. Meminta pengguna untuk login sebagai root saat menjalankan skrip shell

  1. Mode Pengguna Tunggal Linux

  2. Bagaimana Cara Menjatuhkan Hak Istimewa Root Dalam Skrip Shell?

  3. CentOS / RHEL :Cara Mengubah shell login pengguna