デスクトップでRaspbian Stretch 4.9のほぼ新しいイメージを実行しており、数分ごとにコンピューターの背景用に新しいイメージを作成するプログラムを持っています。
pcmanfm を使用して背景を適切に更新する cron ジョブを作成しようとしています。ここでの提案に従って、背景を設定する 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 ユーザーはデフォルトでルート権限を持っています。) 他に何を検索または試行すべきかがわからないので、誰かが私を正しい方向に向けることができるか、または以前にこの問題に遭遇したことがあるかどうか、助けを求めています。