ログインリモートルートとして、Seleniumプログラムをリモートで実行したいROOTのディスプレイ(私のリモートディスプレイではありません)。私はnotssh -X
(これは機能します)を実行することについて話していますが、代わりに、あるnodejsアプリケーションがSeleniumを使用する別のnodejsアプリケーションを生成し、すべてユーザーがsshを実行する必要はありません。しかし、Seleniumは、必要なjpgファイルをレンダリングするために、ある種のディスプレイを使用する必要があります。
私が見ている質問はたくさんありますが、私はまだ概念に苦労しています...私が使用している主な情報源は次のとおりです。
これが私が理解していることです:
$DISPLAY
:0
または:1
です。$DISPLAY
は:0
または:1
に設定されます。$XAUTHORITY
~/.Xauthority
と環境変数$XAUTHORITY
で定義されています。$XAUTHORITY
は/tmp/xauth-0-_0
($DISPLAY=:0
の場合)または/tmp/xauth-0-_1
($DISPLAY=:1
の場合)に設定されます。=====================
私はこれらすべてのことを試しました:
スクリプトを使用して$DISPLAY
と$XAUTHORITY
を設定する
NodejsSeleniumアプリケーションを生成するスクリプトがあります。 Seleniumアプリケーションを実行する前に、まずスクリプトでこれら2つの変数をエクスポートしました。
if [ -e "/tmp/xauth-0-_0" ]
then
export DISPLAY=":0"
export XAUTHORITY="/tmp/xauth-0-_0"
Elif [ -e "/tmp/xauth-0-_1" ]
then
export DISPLAY=":1"
export XAUTHORITY="/tmp/xauth-0-_1"
fi
#Then run the nodejs Selenium app
node index.js
このメソッドを使用すると発生するエラーはInvalid MIT-MAGIC-COOKIE-1 key[10332:10332:0713/112221.602744:ERROR:browser_main_loop.cc(272)] Gtk: cannot open display: :0.0
です。
X11Forwarding yes
に/etc/ssh/sshd_config
を設定しますが、これはssh -X
にのみ適用されると思いますChromeを開く他の試みは次のとおりです。
[root@localhost test]# xauth list
localhost:0 MIT-MAGIC-COOKIE-1 ....
[root@localhost test]# export XAUTHORITY=/tmp/xauth-0-_0
[root@localhost test]# export DISPLAY=localhost:0
[root@localhost test]# google-chrome
[10673:10673:0713/141603.418401:ERROR:browser_main_loop.cc(272)] Gtk: cannot open display: localhost:0
[root@localhost test]# export DISPLAY=127.0.0.1:0
[root@localhost test]# google-chrome
[10859:10859:0713/141617.346302:ERROR:browser_main_loop.cc(272)] Gtk: cannot open display: 127.0.0.1:0
Fedora 23(Server Edition)x86_64を使用しています
私はこれは不可能であるという結論に達しました:(
これが機能するためには、いつかどこかでユーザーsshを使用する必要があります。
ユーザーがいなければ、rootの表示を引き継ぐことはできません。