質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

18594閲覧

$DISPLAYが自動で設定されない。

ruei

総合スコア284

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2018/09/23 07:52

編集2018/09/23 08:11

$DIPLAY変数が自動で設定されず困っています。
WSL上にubuntuを動かし、sshで外部の計算用のサーバーに接続しています。

パソコンAから接続したときは自動で設定されます。
DISPLAY=localhost:10.0
になっています。

一方、パソコンBから接続したときは
DISPLAY=
になっています(設定されていないです)
http://d.hatena.ne.jp/ihiroky/20091115/1258303684を参考に.bash_profileに

# Get remotehost and set DISPLAY REMOTEHOST=`last -1a | sed '1s/^.* //;q'` if test $REMOTEHOST then DISPLAY=$REMOTEHOST":0.0" export REMOTEHOST DISPLAY fi

としたところ、パソコンBではDISPLAY変数が自動で設定されるようになりましたが、
パソコンAでは.bash_profileの続く行にある

eval `dbus-launch --sh-syntax`

のところで、処理が終わらなくなってしまいます。

eval `dbus-launch --sh-syntax`

をDISPLAY変数を自動で設定するためのスクリプトより前に置くと、DISPLAY変数が訳の分からない値になってしまいます。

パソコンA、Bから接続するコマンドはともに

ssh -i id_rsa -X -Y hoge@foo.ac.jp

です
解決法の分かる方、ご教示お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

1.サーバーの.bash_profileを元に戻す。

2.パソコンBでDISPLAY変数を正しく設定する。例、DISPLAY=:0.0

3.パソコンBからサーバーにsshで接続する。つssh -i id_rsa -Y hoge@foo.ac.jp

投稿2018/09/23 11:43

編集2018/09/23 11:45
hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruei

2018/09/23 14:07

出来ました!パソコンAはDISPLAY変数を設定していたのを忘れていたようです。
guest

0

そもそもですが、sshコマンドでは-XオプションでX11フォワーディングする指定をしています。
そのため、PC-Aの例にある通りDISPLAY=localhost:10.0DISPLAYはリモートホスト上にあるはずですが、DISPLAY=$REMOTEHOST":0.0"とすると、X11フォワーディングを使わずに直接ローカルPC上のX11とX11のポートを使って通信することになります。
sshのX11フォワーディングを使うのか使わないのかどちらでしょうか?

あと、dbus-launch --sh-syntaxと実行すると何が表示されますか?

投稿2018/09/23 11:28

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruei

2018/09/23 14:10

dbus-launch --sh-syntaxとすると、何も表示されないまま、固まってしまいます。 何も考えずコピペしたので、X11のポートを使った通信と、X11フォーワーディングの違いをよく区別せず使ってました。すみません。ともあれ、hichonさんの回答を参考にしてX11フォーワーディングで自動で設定できるようになりました。ありがとうございます。
otn

2018/09/23 14:19

ssh の X11フォワーディングであれば、ディスプレイ番号(この例だと10)はsshdが振ってDISPLAYに設定するので、クライアント側で設定するというのはおかしいです。
ruei

2018/09/23 14:39

ssh接続前のWSLのホームの.bashrcにexport DISPLAY=hogehogeとしたんですが間違っていますか。 正しい設定方法の載っているサイトがあったら教えていただけないでしょうか
otn

2018/09/23 15:31 編集

先に書いたとおり、sshdがDISPLAYを設定するはずですが、設定されないのであれば、何らかの設定の問題かも知れません。 sshdの設定で、ディスプレイ番号が10から始まるように設定されていると思われるので、そのクライアントPCからしか接続しないのであれば、10番固定、つまり DISPLAY=localhost:10.0 で良いかと思います。 同時に複数PCから接続すると、2番目のPCではlocalhost:11.0になるものと思います。
ruei

2018/09/23 15:45

了解しました。 複数のPCから接続して不具合が起きた時に、今回の事を思い出します。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問