単一の端末でユーザーをすばやく切り替えるには?

単一の端末でユーザーをすばやく切り替えるには?

最初のユーザーをログアウトせずに別のユーザーに切り替えた後、他の2人のユーザーをログアウトせずに3番目のユーザーとしてログインするなど、すべてのユーザーをすばやく切り替えたいです。明らかに、ユーザーごとに一度だけパスワードを挿入したいと思います。

必要に応じてctrl-zとfgを使用して背景と前景に送信できるプロセスと同様の方法はありますか?

答え1

su <user>オプションでオプション(また-はとも呼ばれる)と一緒に使用すると、シェルをログインシェル(別の初期化)として機能させることができます。-l--login

そのユーザーのシェルが背景に移動して終了するために使用されるSIGTSTP信号(通常は)をトラップするため、実際に背景に送信することはできません。代わりに、ターミナルマルチプレクサに興味があるかもしれません。tmuxまたはscreen

また、使用したい場合がありますvlock長い間コンソールを使用していないとき。

答え2

Stephen Chazerasは次のように書いています。

Ctrl+pause は使用できませんが、組み込み機能を使用して一時停止Zできます(またはシェルに組み込み機能がない場合)。suspendkill -s STOP "$$"

本当にありがとうございます。魅力的ですね。別のユーザーとしてログインすると、停止によってシェルがバックグラウンドに送信され、以前のユーザーのシェルにコントロールが返されます。その後、fg他のジョブ履歴書のように使用できます。

私が試したところによると、2人以上のユーザーとも動作するようです(sshログインシェルなので停止しました)。~^z結局、スクリーンなどの端末マルチプレクサを使用する必要はありません。

答え3

1つの可能な方法は、screenやtmuxなどのプログラムを使用することです。

fooという名前の新しい画面を作成します。

screen -S foo   

別の画面を作成

ctrl+ a+ c

それらを切り替える

ctrl+ a+ a

または、シェル番号に従ってシェルにジャンプします。

ctrl+ a+ 1

次のように開いているすべての画面セッションの名前/番号を表示できます。

ctrl+ a+ w

これは3つの別々のシェルですが、すべて1つの端末内にあります。

関連情報