1.chrome 現在不允許使用root運行了.
2.無界面 chromedriver 調用chrome 會出錯.
<另外一定要匹配 chromedriver和chrome 的版本. 要不會出各種奇怪的問題!!!>
第一個問題解決方案:
新建立一個用戶.
runuser -l username -c 'python3 xxx.py'
第二個問題:
1.安裝Xvfb和pyvirtualdisplay
yum install xorg-x11-server-Xvfb
pip install pyvirtualdisplay
2.安裝firefox和selenium
yum install firefox
pip install selenium
到這里。環境就配置好了。接下來就可以上代碼了。
3.示例代碼
from pyvirtualdisplay import Display from selenium import webdriver display = Display(visible=0, size=(900, 800)) display.start() driver = webdriver.Firefox() driver.get('http://www.cnblogs.com') print driver.title driver.quit() display.stop()
runuser 擴展
runuser命令使用一個替代的用戶或者組ID運行一個Shell。這個命令僅在root用戶時有用。
僅以會話PAM鈎子運行,並且沒有密碼提示。如果用一個非root用戶,並且該用戶沒有權限設置user ID,這個命令將會因為程序沒有setuid而失敗。因runuser不會運行認證和賬戶PAM鈎子,它比su更底層。
1、runuser 語法
語法與 su 命令基本一樣:
-, -l, –login
讓shell成為登錄shell,用 runuser -l PAM 文件替代默認的;
-g –group=group
指定主要的組;
-G –supp-group=group
指定追加組
-c, –command=COMMAND
使用 -c 傳遞單個命令到 shell 中,執行命令后,就退出到 root;
–session-command=COMMAND
通過一個單一的命令用 -c 參數到 shell ,不創建一個新的會話;
-f, –fast
通過 -f 參數到 shell (針對 csh 或 tcsh);
-m, –preserve-environment
不重置環境變量;
-p same as -m
-s, –shell=SHELL
指定執行命令的shell;
2、runuser 樣例
runuser -l userNameHere -c '/path/to/command arg1 arg2' runuser -l oracle -c 'ulimit -SHa' runuser -s /bin/sh -c "/usr/local/nginx/sbin/nginx"
