sshd(ssh*2ログイン時の ps -fx)
1718 ? S 0:00 sshd: aki@pts/1 1719 pts/1 Ss 0:00 \_ -bash 1734 pts/1 R+ 0:00 \_ ps xf 1546 ? S 0:00 sshd: aki@pts/0 1547 pts/0 Ss+ 0:00 \_ -bash
gnome-terminal-server(gunorm端末*2起動時の ps -fx)
15862 ? Ssl 0:09 \_ /usr/libexec/gnome-terminal-server 15871 pts/0 Ss 0:00 \_ bash 18065 pts/0 R+ 0:00 | \_ ps -fx 15976 pts/1 Ss+ 0:00 \_ bash
2つを見比べますと、
両方ともデバイスファイルが別々のシェルに紐づいていることがわかりますが、
後者は一つのプロセスに複数のデバイスファイルが紐づいています。
これが問題にならない理由がわかりません。
gui環境では、疑似端末というxクライアントを通じてデバイスファイルに書き込まれ、それから各紐づくシェルに送られると考えているため、このあたりの理解が上手くいきません。
一つのxクライアントプロセスが全てのデバイスファイルへの書き込み、出力を担当しているのでしょうか...?
ご助言等頂けましたら幸いです。
> 両方ともデバイスファイルが別々のシェルに紐づいていることがわかりますが、
これは具体的に何のことを言ってますか?
2つのbashプロセスの制御端末が異なると言うことを言っていますか?
> 後者は一つのプロセスに複数のデバイスファイルが紐づいています。
これも具体的に何のことを言ってますか?これは全くわかりません。
お世話になります。
別々に…といいますのは仰る通りでございます。
制御端末のことをデバイスファイル書いておりました。
また、後者の件では、
実際にターミナルが2枚開いているため、例のsshdのようにgnome-terminal-server(擬似端末)のプロセスが2つあって、それぞれの子プロセスとしてそれぞれのシェルが紐付いているのが正しいのではないかと、考えております。
「正しい」というところがよくわかりません
正しい、正しくない の基準は何でしょう?
https://ttssh2.osdn.jp/manual/4/ja/reference/sourcecode.html
上記の記事を参考にしております。
記事中、
"シェルは、sshdからforkされて子プロセスとなり、親プロセス(sshd)が初期化済みのスレーブデバイスドライバとお話をすることになる"
とあります。
これが意味するものは、sshdが接続が来るたびに増えているため、その子プロセスとしてのシェルは、親プロセスのsshdの開いた制御端末を一意に選択できるということだと思います。
これはsshdの場合ですが、これがguiログイン時の疑似端末(xterm, グノム端末等)の場合(後者の例)で考えますと、
疑似端末に対応する制御端末が複数あるため(例ではpts/1とpts/2)、どちらに対して書き込めばよいのか判断できないのではないかと考えております。
その記事はsshでの接続の話ですよね?
私が知りたいのは、guiログインの時に「正しい、正しくない 」としているのはなにを基準にしているのか、
です
疑似端末により、制御端末(pts/#)に書き込みが行われる。
この自分の理解が間違っていない場合、
疑似端末と制御端末が、
1:1 で対応しているのが正しく、
1:多で対応しているのは正しくない、
という判断をしております。
そもそも見方等に誤りがあるのか、それともその理解からすでに間違っているのか、
自分の検索力ではわからずにおります。
1:多で対応しているのは なぜ 正しくない、
のでしょう。そこに判断基準があります
失礼いたしました。
擬似端末は、グノーム端末のようなターミナルエミュレータのことを意味したかったです。上の文では制御端末が制御端末に書き込むのような意味不明な意味となっておりました。
デーモンプロセスは特定のttyに紐付いている必要は無いと思います。
例ではsshdの立ち位置に、guiの場合ターミナルエミュレータが来ると思います。
なので、一つのデーモンプロセスに複数の制御端末とそれに紐付くシェルが対応していると、
例えばターミナルエミュレータ1で入力したコマンドと、
ターミナルエミュレータ2で入力したコマンドをどの制御端末に書き込むべきか、区別がいかないのではないかと考えております。
いくつターミナルエミュレータを立ち上げても、シェルや制御端末が増える一方、肝心のターミナルエミュレータのプロセスが増えていないことが不思議でなりません。
回答2件
あなたの回答
tips
プレビュー