解決策 1:
この状況のために特別に設計されたコマンドがあります:openvt
. openvt
を実行するだけです tty1 のシェルから を実行すると、最初の tty で実行されているシェルが見つかりますが、これにはまだ何も含まれていません (おそらく tty2)。便利なオプションがいくつかあります。 openvt の man ページを参照してください。
これは getty によって管理されるログインではないため、新しいシェルを終了してもログイン プロンプトは表示されません。プロセスが実行されていないため、tty は機能しなくなりますが、前後に切り替えて (Alt-F1 Alt-F2)、シェルを終了したときに画面に表示されていた内容を確認することはできます。 deallocvt
コマンドは、このゾンビのような状態にある tty を破棄し、元の「Alt-F2 は何もしない」状態に戻ります。
もともとこれらのコマンドは open
と呼ばれていました と disalloc
、しかし最終的に誰かがそれらを変更することに決めました.
昔は、Alt+Up で open
を実行するようにキーボード ドライバーと init を構成するのが一般的でした。 であるため、新しいコンソールでシェルを生成するためのホットキーとして機能します。 /etc/inittab
には、コメントアウトされた古い構成の名残がまだ残っている場合があります。 . ( inittab
を持たない派手な新しい init を使用していない場合 .)
ここに同様の質問があります
解決策 2:
別の getty
を生成できます あなたが望むどんなttyでも。シングル ユーザー モードで起動し、getty
を起動します。 tty2:
[email protected]:~# /sbin/getty 38400 tty2 &
Altできるようになりました +F2 新しいttyに。必要に応じて追加の tty に対して繰り返します。 /etc/inittab
を構成するだけで、よりクリーンなことができるでしょう。 シングルユーザーモードでこれを自動的に処理します。
解決策 3:
JOB CONTROL
を使用することで、余分なシェル インスタンスなしで実行できる可能性があります。 現在のシェルで。 bash(1)
のマンページに記載されています .
Ctrl を使用してタスクを一時停止できます +Z デフォルトではシーケンスですが、端末で別の方法で構成できますが、 stty -a
の出力を確認してください :
$ stty -a | grep susp
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
jobs
を発行することでジョブを確認できます :
# jobs
[1] Stopped journalctl -f
[2]- Stopped vim /etc/hosts
[3]+ Stopped tail -f /var/log/firewalld
そのうちの 1 つを前面に表示します:
$ fg %3
または、バックグラウンドで再開します:
$ bg %2
この方法には、screen
の多くの利点がありません。 または tmux
ですが、状況によっては同じように役立つこともあります。