crontabでshスクリプトを実行中に問題が発生しました。

crontabでshスクリプトを実行中に問題が発生しました。

30分ごとにshスクリプトを実行するようにユーザー「pi」を使用してcrontabを設定しました。

ターミナルにcrontab -u pi -e次の行を追加しました: */30 * * * * /bin/sh /home/pi/test.sh

test.shスクリプトには3行あります。

#!/bin/sh
/usr/bin/transmission-gtk
echo "done" > /home/pi/startup/result.txt

その結果、result.txtは30分ごとに更新され、Transmission-gtkはまったく表示されません。つまり、test.shのコマンドの1つだけが有効です。

しかし、端末で/home/pi/test.shを手動で実行すると、すべてがうまくいきます。 test.txt が更新され、Transmission-gtk が表示されます。

私はcrontabのすべてが絶対パスで書かなければならないことを知っており、Transmission-gtkが/usr/binにあると確信しています。もちろん、上記では、ユーザー「pi」がtest.shとTransmission-gtkを実行する権限を持っていることを知っています。

なぜこれが起こるのか教えてくれる人がいますか?

ベストアンサー1

明らかにTransmission-gtkはあなたが始めたいグラフィックプログラムですか?この場合、起動するモニターをcronに通知する必要があります。 crontabの行の前にこれを試してみてください(ディスプレイ0を使用すると仮定):

export DISPLAY=:0

また、メール(おそらく/var/mail/username)にエラーメッセージが必要です。これにより、問題についてさらに詳しく知ることができます。

おすすめ記事