2017-08-25 6 views
0

私はRaspbian Stretch 4.9のほぼ新鮮なイメージをデスクトップで実行しており、数分おきにコンピュータの背景のための新しいイメージを作成するプログラムを持っています。Pcmanfmの壁紙がcronのRaspbianストレッチで失敗する

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

スクリプト:

私はきちんとpcmanfmを使用してバックグラウンドを更新するcronジョブを作成しようとしていますと、提案hereを踏襲したが、背景を設定するにはupdate.shと呼ばれる次のスクリプトを作成しました実行可能であり、ターミナルから実行されるとき、それは意図したとおりに機能する。私は、次のような自動的にこの実行を持っているのcrontabを作成しました:

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

をcronジョブは、ポップアップウィンドウがというエラーが表示され、毎分、トリガすると「デスクトップマネージャがアクティブではありませんが。」

** 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: 
異なっている:それを却下するボタン「OK」、およびログファイルの読み取りと

私はこのことをどういう意味にしているのかは分かりませんが、周りを見てみるとcronの仕事はちょっと厄介なようです。私は、これらのことについて多くの詳細を知らないので、それがパスか環境の問題かどうかはわかりませんが、イメージとスクリプトの完全なパスを使用しているので、問題ではないと思います。私はユーザcrontabとシステムcrontabの両方でこれを試していて、どちらも失敗しているので、パーミッションエラーであってはなりません。 (デフォルトでは、デフォルトのpiユーザにはデフォルトのルート権限があります。)他に何を検索したり試していいのかわかりませんので、誰かが正しい方向に向けるか、この問題が発生した場合に助けを求めています。

+0

同じことをしたスクリプトが機能しなくなりました。私はcronが起動したスクリプトがグラフィカルログインユーザーと同じ "ユーザースペース"で実行されていないと推測しています。そのため、一部の環境変数が正しく設定されていません。残念ながら、私は専門家のLinuxユーザーではありませんが、解決策が見つかると、私は掘り下げてポストバックを続けます。 TLDR:私は最近の更新がそれを破ったと思う。 –

答えて

0

Lubuntu 17.04を実行していることを除いて、まったく同じ問題がありました。最近の更新の後に最近表示されますが、いつの時点で正確かはわかりません。多くの研究の後、私はXDG環境変数の1つを輸出しなければならないと疑われました。いくつかの試行錯誤の末、XDG_RUNTIME_DIRをエクスポートすると私の問題が解決されたことが分かりました。試してみてください。

は値の実行を把握するには、次のecho $XDG_RUNTIME_DIR今私のためにcronから実行する作業壁紙チェンジャーのように見える

:(更新pcmanfmが含まれていた)最後の夜、私のラップトップ上でアップデートを実行した後

#!/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 
...