2013-07-16 49 views
0

我試圖在Amazon EC2實例上運行Xvfb服務器,然後有一個硒Firefox驅動程序使用虛擬顯示屏保存網站的屏幕截圖。我以前使用PhantomJS,但它無法加載我需要的所有類型的頁面。Xvfb服務器不能在不同的用戶下工作

當我在遠程Amazon EC2實例上的本地用戶上運行它時,該服務器正常工作,但當我嘗試將其作爲「qauser」運行時,我的硒Firefox驅動程序無法連接到虛擬顯示器;它只是當我嘗試初始化webdriver時掛起。如果我嘗試使用虛擬顯示器啓動Firefox,則會顯示「錯誤:嘗試打開個人檔案目錄中的文件時訪問被拒絕。」

如果我su入qauser,然後運行Xvfb和我的應用程序,它工作正常。如果我運行Xvfb作爲qauser,並以自己的用戶身份運行webdriver,它就可以工作。當我將Xvfb和我的應用程序作爲qauser運行時,就會出現問題。有沒有人有任何想法可能是錯誤的?

我的Xvfb服務器,以及創建webdriver的應用程序都使用supervisord運行。配置發佈在這裏:

[program:QaServer] 
command = python /opt/corp/qa_tool/main.py 
environment = PATH='$PATH:/opt/bin:/usr/local/bin:/usr/bin', DISPLAY='localhost:99' 
user = qauser 
directory = /home/qauser 
priority = 1 
stdout_logfile = /opt/corp/qaData/qaTool.log 
redirect_stderr = true 

[program:Xvfb] 
command = Xvfb :99 
user = qauser 
directory = /home/qauser 
priority = 2 
stdout_logfile = /opt/corp/qaData/qvfb.log 
redirect_stderr = true 

回答

0

你可以嘗試用一個運行strace的腳本來包裝Firefox。之後,重現問題並在日誌中搜索症狀,例如grep for(stat | open)。* EPERM(用於配置文件訪問權限被拒絕的情況)。

+0

我做了一個簡單的測試腳本,作爲qauser運行。 Strace似乎沒有回報任何有用的東西。 http://pastebin.com/SsvHz7F4 – zalpha314

0

我在嘗試在RHEL上運行Chrome時遇到類似問題,這是由於SELinux造成的。您可以嘗試禁用SELinux,然後測試您的設置。

根據this chromium issue,SELinux錯誤在最新的Fedora中已修復,並可能被反向移植到RHEL。

相關問題