簡體   English   中英

linux crontab 不能運行帶有圖形界面的程序?

[英]Linux crontab can not run with a graphical interface procedures?

linux crontab 不能運行帶有圖形界面的程序? 我完成了一個簡單的seleimun + chrome自動登錄程序,在測試運行的時候是可以運行的,但是在crontab定時,我寫了 ,並且寫了一個簡單的控制組,他沒有運行,我該怎么辦?

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time,sys

driver = webdriver.Chrome()

driver.get("https://stackoverflow.com/users/login?ssrc=head&returnurl=http%3a%2f%2fstackoverflow.com%2fusers%2f7197440%2fa83533774%3ftab%3dtopactivity")

elem = driver.find_element_by_xpath('//*[@id="email"]')
elem.send_keys("******")

elem = driver.find_element_by_xpath('//*[@id="password"]')
elem.send_keys("***")

elem.send_keys(Keys.RETURN)
time.sleep(5)
name = time.ctime().replace(' ','-')+'.png'
driver.save_screenshot(name)
time.sleep(5)
print 'end',time.ctime()
driver.close()

定時任務:

DISPLAY=:0 google-chrome

 */3 * * * * python ~/selenium_so.py >> log1.txt

 */1 * * * * date >> log.txt

我找到了這個答案,但是我如何練習他使用 crontab (python) 運行 selenium

感謝你的回答!

如果你想用 GUI 啟動一些東西,你必須指示 cron 將輸出發送到哪里:

* * * * * export DISPLAY=:0 && (your instruction)

我需要構建一個測試用例,看看這是否適用於 Selenium。 我不清楚此導出是否適用於由您的 python 腳本而不是由 cron 本身產生的進程。 但原則上,這將允許您使用 GUI 啟動進程。

對此有一些技巧,您需要成為用戶而不是一般的 root,因此請確保將其放在用戶 crontab 中,而不是 root 或 sudo crontab 中。

以下是一些示例用法

我建議使用 Webmin 這是一個很棒的 Linux 工具包(Web 界面)

檢查此鏈接:使用 Webmin 計划的 crontab

您的應用程序可能會使用一些環境變量,您可以從 /home/user1/.bashrc 文件中存儲環境變量

typeset -gx > /tmp/user1envvars

和 /etc/crontab 條目看起來像

* * * * *   user1 /bin/bash -c 'source /tmp/user1envvars ; /path/to/your/app  args..'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM