2017-08-25 47 views
0

我正在桌面運行幾乎新鮮的Raspbian Stretch 4.9圖像,並有一個程序每隔幾分鐘爲計算機背景創建一個新圖像。Pcmanfm設置壁紙在cron中Raspbian伸展失敗

我想創建一個cron作業使用pcmanfm正確更新背景,被跟隨的建議here,創建了一個叫做update.sh以下腳本設置背景:

!#/bin/bash 
export DISPLAY=:0 
export XAUTHORITY=/home/pi/.Xauthority 
pcmanfm -w '/home/pi/folder/image.png' 

腳本是可執行的,當它從終端運行時,它的功能如預期。我已經自動創建一個crontab有這樣的運行方式,例如:

* * * * * /home/pi/folder/update.sh > /home/pi/folder/log.txt 2>&1 

當cron作業觸發每一分鐘,將出現一個錯誤,說一個彈出式窗口「桌面管理器是不活躍的。」用「OK」按鈕將其關閉,並在日誌文件中讀取:

** Message: x-terminal-emulator has very limited support, consider choose another terminal 

我已經在crontab

* * * * * DISPLAY=:0 && pcmanfm -w '/home/pi/folder/image.png' > /home/pi/folder/log.txt 2>&1 

直接嘗試了命令和錯誤不同,這一次

Cannot open display: 

我不完全確定這件事有什麼意義,但是從環顧四周看來,cron的工作可能會很挑剔。我不確定它是否是路徑或環境問題,因爲我不知道這些事情的很多細節,但我不認爲這應該是一個問題,因爲我正在使用圖像和腳本的完整路徑。它不應該是權限錯誤,因爲我已經在用戶crontab和系統crontab上嘗試了這一點,並且都失敗了。 (此外,默認情況下,默認情況下,pi用戶擁有root權限。)我不知道還有什麼要搜索或嘗試的,所以如果有人能指向正確的方向或遇到此問題,我正在尋求幫助。

+0

昨晚上運行我的筆記本電腦的更新(其中包括更新pcmanfm)後我做了同樣事情的腳本停止了工作。我猜cron啓動的腳本沒有像圖形登錄的用戶那樣在同一個「用戶空間」運行,所以有一些環境變量沒有正確設置。不幸的是,我不是一個專業的Linux用戶,但是如果我找到解決方案,我會繼續挖掘和回發。 TLDR:我認爲最近的更新打破了它。 –

回答

0

我有完全相同的問題,除了我運行Lubuntu 17.04。它最近更新後出現,但無法查明何時。經過很多研究,我開始懷疑XDG環境變量中的一個也必須導出。經過一些試驗和錯誤,我發現導出XDG_RUNTIME_DIR解決了我的問題。你可能想嘗試一下。

找出值來看:echo $XDG_RUNTIME_DIR

現在從cron運行我的工作壁紙更換的樣子:

#!/bin/bash 
... 
export DISPLAY=:0 
export XAUTHORITY=/home/krisz/.Xauthority 
export XDG_RUNTIME_DIR=/run/user/1000 
pcmanfm --set-wallpaper=${dir}/${file} --wallpaper-mode=crop 
...