簡體   English   中英

無法使用cron運行python腳本

[英]Unable to run python script with cron

我試圖用cron運行一個簡單的python腳本,但我終生無法正常工作。 我正在運行Ubuntu 18.04。

我知道對此有很多疑問(和答案)。 我看過其中的一些,但仍然無法正常工作。

我的python腳本是:

#!/usr/bin/env python

from tkinter import messagebox
messagebox.showinfo('MessageBox','Hello world!')

我關注了“ 無法在Cron中運行Python腳本 ”並按如下所示更改了權限:

chmod +x /home/brb/bugs/projects/cron/hello.py

我可以從命令行成功運行此代碼,如下所示:

brb@bishop:~$ /home/brb/bugs/projects/cron/hello.py 

在crontab內,我嘗試按照以下兩種不同方式執行腳本(每2或3分鍾嘗試確定一個有效的腳本...)

*/2 * * * * /home/brb/bugs/projects/cron/hello.py
*/3 * * * * /usr/bin/env python /home/brb/bugs/projects/cron/hello.py

什么都沒發生。

我遵循了http://www.jessicayung.com/automate-running-a-script-using-crontab/並嘗試檢查錯誤文件,如下所示:

cd ../..
cd var/mail 
nano $brb

我在nano中觀察到一條消息

[ Directory '.' is not writable ]

我不確定哪個目錄是“。” 是,也許是var / mail。 無論如何,不​​確定如何使其可寫。 我會在chmod上添加更多Google chmod,以使它可寫,但是當我看到所有示例時,cron仍無法解決為什么cron無法正常工作...

編輯:

我按照如何從X會話外部(例如從控制台或SSH)在X會話外部運行X程序,按照三元組的注釋進行操作,並且由於不知道自己在做什么,因此嘗試更改顯示權限,如下所示:

brb@bishop:~$ export XAUTHORITY=/home/brb/.Xauthority
brb@bishop:~$ export DISPLAY=':0'

我的Cron工作仍然無法正常工作。

您的問題是雙重的:

  • cronjob具有不知道它可能在哪里顯示圖形應用程序(要使用哪個X服務器或DISPLAY

    通過確保在腳本環境中設置了DISPLAY可以解決此問題。 在X會話中運行的終端中運行echo $DISPLAY :0很有可能。

  • 即使知道正確的DISPLAY ,它也(應該)沒有訪問權限。 如果您在與運行目標X會話的用戶相同的用戶下運行cronjob。 如果它是另一個用戶,並且可以訪問用戶的家,則可以通過將XAUTHORITY設置為指向它的權限文件來重用它的權限文件。

    您還可以從正在運行的會話中導出必要的信息(隨每個會話更新),將其輸入到該終端中: xauth list $DISPLAY並將其添加給您的cron運行用戶: xauth add displayname protocolname hexkey (使用以下三個值返回) xauth list

暫無
暫無

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

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