2016-04-18 19 views
0

私はgunicornとpythonプログラムを実行するサーバーを持っています。別のサーバーがurlを送信し、問題のサーバーがurlをスクラップして何らかの情報を送り返します。Xvfbがコード変更なしで失敗し始めた

私は、Xvfbを使用して、背景にfirefoxタブを実行しているセレンを持っています。

これは私が今しばらくの間、私のサーバーを再起動されたかではありません:

sudo Xvfb :10 -ac 
export DISPLAY=:10 
sudo pkill gunicorn 
gunicorn -b 0.0.0.0:8080 wsgi:app 

突然、Xvfbのを使用していたすべてのスクレープは、もはやそう、動作し、エラーを出しますが、同じコードはまだ私のローカルコンピュータ上で動作します私はそれがサーバ上でXvfbを使用していることと関係していることを知っています。私はすべてのXvfbのとFirefoxの仕事を殺害し、すべてのバックグラウンドジョブを殺害し、再起動を試みたが、している

7 XSELINUXs still allocated at reset 
SCREEN: 0 objects of 256 bytes = 0 total bytes 0 private allocs 
DEVICE: 0 objects of 96 bytes = 0 total bytes 0 private allocs 
CLIENT: 0 objects of 136 bytes = 0 total bytes 0 private allocs 
WINDOW: 0 objects of 32 bytes = 0 total bytes 0 private allocs 
PIXMAP: 2 objects of 16 bytes = 32 total bytes 0 private allocs 
GC: 4 objects of 16 bytes = 64 total bytes 0 private allocs 
CURSOR: 1 objects of 8 bytes = 8 total bytes 0 private allocs 
TOTAL: 7 objects, 104 bytes, 0 allocs 
2 PIXMAPs still allocated at reset 
PIXMAP: 2 objects of 16 bytes = 32 total bytes 0 private allocs 
GC: 4 objects of 16 bytes = 64 total bytes 0 private allocs 
CURSOR: 1 objects of 8 bytes = 8 total bytes 0 private allocs 
TOTAL: 7 objects, 104 bytes, 0 allocs 
4 GCs still allocated at reset 
GC: 4 objects of 16 bytes = 64 total bytes 0 private allocs 
CURSOR: 1 objects of 8 bytes = 8 total bytes 0 private allocs 
TOTAL: 5 objects, 72 bytes, 0 allocs 
1 CURSORs still allocated at reset 
CURSOR: 1 objects of 8 bytes = 8 total bytes 0 private allocs 
TOTAL: 1 objects, 8 bytes, 0 allocs 
1 CURSOR_BITSs still allocated at reset 
TOTAL: 0 objects, 0 bytes, 0 allocs 

も同様のエラーが発生します。

は、ここでは動作を停止した後に、それは印刷を開始した新しいコンテンツです。

sudo Xvfb :10 -ac 

それが出力開始されました:

EDITは1

また、1つの最近の変更は、私が入力したときにということである

Initializing built-in extension Generic Event Extension 
Initializing built-in extension SHAPE 
Initializing built-in extension MIT-SHM 
Initializing built-in extension XInputExtension 
Initializing built-in extension XTEST 
Initializing built-in extension BIG-REQUESTS 
Initializing built-in extension SYNC 
Initializing built-in extension XKEYBOARD 
Initializing built-in extension XC-MISC 
Initializing built-in extension SECURITY 
Initializing built-in extension XINERAMA 
Initializing built-in extension XFIXES 
Initializing built-in extension RENDER 
Initializing built-in extension RANDR 
Initializing built-in extension COMPOSITE 
Initializing built-in extension DAMAGE 
Initializing built-in extension MIT-SCREEN-SAVER 
Initializing built-in extension DOUBLE-BUFFER 
Initializing built-in extension RECORD 
Initializing built-in extension DPMS 
Initializing built-in extension Present 
Initializing built-in extension DRI3 
Initializing built-in extension X-Resource 
Initializing built-in extension XVideo 
Initializing built-in extension XVideo-MotionCompensation 
Initializing built-in extension SELinux 
Initializing built-in extension GLX 

EDIT 2

try:except:ステートメントをブロックするエラーを削除した後の新しいエラーコードを次に示します。

... 
    File "./app/scraper/main.py", line 340, in uScrape 
    driver = webdriver.Firefox() 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 77, in __init__ 
    self.binary, timeout), 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 49, in __init__ 
    self.binary.launch_browser(self.profile) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser 
    self._wait_until_connectable() 
    File "/usr/local/lib/python2.7/dist- 
packages/selenium/webdriver/firefox/firefox_binary.py", line 103, in _wait_until_connectable 
    raise WebDriverException("Can't load the profile. Profile " 
WebDriverException: Message: Can't load the profile. Profile Dir: %s If you specified a log_file in the FirefoxBinary constructor, check it for details. 

EDTI 3

$pip show selenium 

Name: selenium 
Version: 2.53.1 
Location: /usr/local/lib/python2.7/dist-packages 
+1

を固定し、これらの3つのコマンドを実行した後、あなたの仮想Xセッション内で実行するgunicornたいいくつかの理由がありますか?また、私はそれが助けになるとは思っていませんが、私がセレンをやっている方法は、xvfb-runのpython .pyを使っています...これは仮想フレームバッファセッションを開始してセレンを実行してからXvfbセッションを停止します...また、あなたのセレンを実行しているとき(または単にFirefoxを起動しているとき)には、どのようなエラーが発生しますか? – Foon

+0

@Foon編集2を参照してください。ケースバイケースxvfbを実行してください – Rorschach

答えて

0

この問題は

sudo apt-get upgrade firefox 
pip install --upgrade selenium 
sudo apt-get update 
関連する問題