###前提・実現したいこと
現在ConoHaでサーバを借り、Ubuntu16.04をGUIで動かしています。この端末を使い、ブラウザを自動的に操作する(クローリングする)プログラムを実行しようと考えています。
また、何らかの不具合により動作が終了した時にスマートフォンからSSHで接続しプログラムを再実行するということを行いたいと考えています。
###発生している問題
実際にConoHaのコンソール画面(VNC)でGUIを操作しプログラムを実行した際は正常に動作するのですが、手元の端末からSSHで接続し、プログラムを実行した際はエラー(後述)が出て正常に動いてくれません。
SSH接続をする際に-Yのオプションをつければ、プログラムを実行することができますが、ブラウザの画面が手元の端末で実行してしまいます。これをConoHaの端末側で実行するすべはないでしょうか?
よろしくお願いします。
###補足情報
- 実行したいプログラムはPythonで書かれていて、Seleniumをつかってブラウザ操作を行っています。
- -Yオプションを使わないで実行した時のエラーは以下のとおりです。
Message: unknown error: Chrome failed to start: exited abnormally (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 4.4.0-45-generic x86_64) Traceback (most recent call last): File "main.py", line 51, in <module> b1 = webdriver.Chrome('./chromedriver') File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__ desired_capabilities=desired_capabilities) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__ self.start_session(desired_capabilities, browser_profile) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 179, in start_session response = self.execute(Command.NEW_SESSION, capabilities) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 4.4.0-45-generic x86_64)
- ConoHa上のUbuntuをGUIに対応させた方法はこちらのサイトを参考にしました。
- SSHで接続している手元の端末はUbuntu16.04です。
追記
- SSHで手元の端末からConoHaの端末に接続した状態で”printenv DISPLAY”を行うと何も出力されませんでした。ちなみに、ConoHaのコンソールで同様のコマンドを実行すると「:0」と帰ってきました。
- 普段SSH接続を行う際のコマンドは以下のとおりです。
$ ssh -i [カギのパス] [ユーザ名]@[ConoHa側のIPアドレス]
「発生している問題」で触れました"-Y"のオプションをつけた時のコマンドは以下のとおりです。また、この"-Y"の部分を"-X"に変えても結果は同じでした。
$ ssh -i [カギのパス] [ユーザ名]@[ConoHa側のIPアドレス] -Y
回答2件
あなたの回答
tips
プレビュー